补充:迁移文件的执行顺序
迁移文件默认是按照创建先后的顺序来执行(文件名开始部分的时间戳作为排序依据)。教程中没有提及这一点,文档中有提到。
当时看到教程中 并且区分执行先后顺序,这确保了初始化数据发生在数据表结构创建完成后。
这句话时很困惑 —— 如何『确保』的?执行顺序又是如何确定的?是按照创建的先后顺序还是可以指定顺序?如果可以指定顺序,那是在 migrate
命令中指定还是需要创建一个设置文件来指定?虽然直觉觉得执行顺序应该是创建顺序,不过还是查了下文档,发现默认顺序确实如此。另外,通过命令指定顺序也是可行的,migrate
命令提供了一个 --path
选项,可以每次指定一个文件来执行。
所以,如果在创建数据表结构之前先创建了初始化数据的迁移文件,那要么删掉后者再次创建,要么指定顺序执行。
另一方面,『创建初始化数据迁移文件应该在创建数据表结构迁移文件之后』也算是一个『约定』吧。
推荐文章: