Symfony1 原则:生成迁移差异不会生成任何新迁移
在我今天对schema.yml进行了一些更改后,每个更改后都跟着diff、migrate、build命令,diff操作停止工作 最后一次成功的迁移是第243次 现在,每次我做出新的更改,当我发出diff命令时,结果总是一样的:Symfony1 原则:生成迁移差异不会生成任何新迁移,symfony1,doctrine,migration,symfony-1.4,Symfony1,Doctrine,Migration,Symfony 1.4,在我今天对schema.yml进行了一些更改后,每个更改后都跟着diff、migrate、build命令,diff操作停止工作 最后一次成功的迁移是第243次 现在,每次我做出新的更改,当我发出diff命令时,结果总是一样的: /usr/bin/php /.../symfony --color doctrine:generate-migrations-diff >> doctrine generating migration diff >> file+ /tmp
/usr/bin/php /.../symfony --color doctrine:generate-migrations-diff
>> doctrine generating migration diff
>> file+ /tmp/doctrine_schema_92228.yml
Done.
lib/migration/doctor中没有创建新文件,因此我无法使用migrate命令将更改提交给数据库
我试图清除缓存,清理模型文件,构建所有类,并重新启动
有什么想法吗?这是我遇到的每次迁移和成功的最好方法。我猜起来花了很多钱,但效果很好,可以与多个数据库一起使用。我可能会在一些句子中出错,所以请随意添加或更正我在您看到的任何内容 迁移,最安全的方式:) 如果您需要为多个数据库执行迁移,请应用这些修补程序并清除symfony缓存,它们可以完美地工作:
A.备份项目和数据库:
.yml
文件不能包含奇怪的符号,如ñ
,'
,`````。。。或非UTF字符连接
属性:
连接
:
!,永远不要和好!。还要记住新参数--connection。如果应用了上述修补程序,它现在可以工作,并且只迁移正确的数据库:
迁移涉及的主要文件:
Migration.php、Builder.php、sfTaskMigration.php在运行diff之前,您是否使用新模式生成了类?如果是这样,请回滚您的模式,重新生成您的类,重新应用您的模式更改并重新运行diff。感谢您的建议;不,我总是按照这个顺序迁移构建;现在,在完成完整备份之后,我将尝试从模型重建模式;-)更新:我从db重建了schema.yml;然后我试着建立模型,但现在我得到了这个警告:
/usr/bin/php/../symfony——颜色原则:构建模型>>原则生成模型类>>文件+/tmp/doctor_schema_93565.yml php注意:未定义索引:别名在/../lib/vendor/symfony/lib/plugins/sfDoctrinePlugin/lib/vendor/doctrine/Import/Builder.php第685行
我是困惑…哇,清理你的缓存?(我不知道为什么会出现这个错误)目前我有类似的问题-diff命令不会生成任何其他文件。我只是放弃了寻找解决方案,开始手动编写迁移类。通常我对数据库的更改并不是很重要,所以写起来相对容易:)哇,我一有时间就去试试;同时,我发现在我的机器上运行migrations diff会使php5崩溃8-|该插件在某些系统中可能无法工作,因此您需要找出崩溃的原因并修复代码。在Windows7、PHP5.4、Symfony1.14.17中对我有效。迁移的方法可能还有很多,即使插件不适合您,您仍然可以使用原始命令进行迁移,然后继续执行下一步。
connection: doctrine_master
Tbtest001:
connection: doctrine_master
tableName: tb_test001
name: migration_version , column: version (int (11)). (autoincrement=false).
UPDATE databasetest.migration_version SET databasetest.migration_version.version='31';
UPDATE databasetest2.migration_version SET databasetest2.migration_version.version='31';
symfony cc
symfony model:diff > migratediff.log
.\lib\migration\doctrine\XXXXXX_versionXXX.php
.\data\migration\history\XXXXXXXXXX.yml
symfony doctrine:migrate 32 --connection=doctrine_master > migrateUP.log
symfony doctrine:build-model
symfony doctrine:build-forms
symfony doctrine:build-filters
symfony doctrine:clean-model-files
symfony cc
UPDATE databasetest.migration_version SET databasetest.migration_version.version='32';
UPDATE databasetest2.migration_version SET databasetest2.migration_version.version='32';
symfony doctrine:build-sql [--application[="..."]] [--env="..."]