Symfony 如何在使用deployer运行部署时检查是否存在迁移
我正在使用Deployer将我的Symfony应用程序部署到生产环境中。一切正常,但是,我的deploy.php文件具有用于数据库迁移的命令:Symfony 如何在使用deployer运行部署时检查是否存在迁移,symfony,database-migration,php-deployer,Symfony,Database Migration,Php Deployer,我正在使用Deployer将我的Symfony应用程序部署到生产环境中。一切正常,但是,我的deploy.php文件具有用于数据库迁移的命令: /** * Run a diff to generate migrations, */ task('database:diff', function () { run('{{bin/php}} {{release_path}}/' . trim(get('bin_dir'), '/') . '/console doctrine:migrations:
/**
* Run a diff to generate migrations,
*/
task('database:diff', function () {
run('{{bin/php}} {{release_path}}/' . trim(get('bin_dir'), '/') . '/console doctrine:migrations:diff --env={{env}} --no-debug --no-interaction');
})->desc('Generate migrations database');
...
after('deploy:symlink','database:diff');
after('database:diff','database:migrate');
但如果数据库没有更改,则此步骤会导致错误
错误消息:
[RuntimeException]
[Doctrine\DBAL\Migrations\MigrationException]
Could not find any migrations to execute.
我正在寻找一些代码,这些代码可以检查任何数据库更改,并且只有在发生更改时才有条件地运行迁移任务。嗯,这是一种奇怪的自动迁移和数据库版本控制方法 我们就是这样做的: 每个开发人员都会生成他们的迁移
$php应用程序/控制台原则:迁移:diff
迁移是在本地创建的database:migrate
,即可将prod数据库更新为最新版本
提示:在生成迁移时,最好为每个实体/数据库表生成一个迁移,就好像某些sql查询在大迁移中会失败一样,很难回滚已经执行的sql查询。好吧,这是一种奇怪的自动迁移和数据库版本控制方法 我们就是这样做的: 每个开发人员都会生成他们的迁移
$php应用程序/控制台原则:迁移:diff
迁移是在本地创建的database:migrate
,即可将prod数据库更新为最新版本
提示:在生成迁移时,最好为每个实体/数据库表生成一个迁移,因为如果某些sql查询在大迁移中失败,则很难回滚已执行的sql查询。我可以快速询问一下有关此方法的问题吗?我有一个非常相似的,我想知道。。。如何使用deployer执行回滚?我的意思是,假设我们有刚刚部署的版本5,执行了2次迁移,现在我想回滚到版本4,您是否以某种方式实现了自动化?关于这种方法,我可以问一个简短的问题吗?我有一个非常相似的,我想知道。。。如何使用deployer执行回滚?我的意思是,假设我们有刚刚部署的版本5,执行了2次迁移,现在我想回滚到版本4,您是否以某种方式实现了自动化?