在使用laravel 4时,我遇到了一个陷阱:“错误1215:无法添加外键约束”,特别是在使用jeffreyway的laravel4生成器时。
在laravel 4中,您可以使用jeffreyway的生成器生成迁移文件来逐个创建表,也就是说,每个迁移文件生成一个表。
您必须意识到,每个迁移文件都是用文件名中的时间戳生成的,该时间戳为文件提供了一个顺序。生成顺序也是启动Artisan cli命令“php Artisan migrate”时的迁移操作顺序。
因此,如果一个文件要求外键约束引用一个将在后一个文件中生成但尚未生成的键,则会触发错误1215。
在这种情况下,您需要做的是调整迁移文件生成的顺序。按正确顺序生成新文件,复制内容,然后删除无序的旧文件。