我对FuelPHP,ORM和一般的迁移都很陌生,所以如果我遇到像新手那样对不起,但我现在已经在这几个小时里苦苦挣扎,所以我想我会寻求帮助。我想我做错了什么或遗漏了一些基本的东西。
我正在尝试创建一个用户模型,为简单起见,我们假设它只有一个代表名称的字符串。
我的印象是,使用以下两个Oil命令会创建一个用户模型,并且相关的迁移在运行后会构建一个关联的表:
php oil generate model user name:string
oil refine migrate
这确实成功创建了模型和迁移,但运行第二个命令不会在数据库中构建表。
如果我另外一方面运行这些命令:
php oil generate migration create_user name:text
oil refine migrate
创建迁移并在我的数据库中构建表。我注意到,在迁移名称中加上'create_'可以创建表,而将其关闭(即php oil generate migration user name:text
)不会将表插入数据库。我注意到,使用和不使用'create_'生成的迁移都有很大不同。
所以我的问题最终是,如何创建模型,创建表的关联迁移?或者,我完全误解了什么?
谢谢!
答案 0 :(得分:2)
如果您收到“已经进行了最新迁移”,则您的迁移跟踪数据将不同步。迁移在数据库(称为迁移的表)和环境文件夹(名为migrations.php)中的配置文件中进行跟踪。
如果其中一个已进入,则油不再运行。
因此,您不能只通过后门删除表,然后再次运行迁移。您必须运行'migrate:down'以恢复上次迁移,或者如果您删除所有迁移,还要删除迁移表和配置文件。
再次,在FuelPHP论坛上归功于Harro Verton。