【发布时间】:2020-07-22 15:56:43
【问题描述】:
随着迁移重置数据库的最佳方法是什么。
这是我尝试过的。
- 删除所有迁移并删除所有数据库表。 然后运行
php bin/console doctrine:mi:diff
php bin/console doctrine:mi:mi
这行不通。
- 尝试像这样一次运行单个版本
php bin/console doctrine:migrations:migrate 'DoctrineMigrations\Version20200722104913'
- 我试过这个:
php bin/console doctrine:database:drop --force
php bin/console doctrine:database:create
php bin/console doctrine:mi:mi
问题(详细):
我所做的每件事都会导致相同的结果。
Doctrine 认为我还有一些表格要生成,这些表格早已不复存在(不再存在于实体中)
这就是我出现此错误的原因:
执行 'DROP TABLE 时发生异常 问候卡类别':
SQLSTATE[42S02]:未找到基表或视图:1051 未知表 'symfony.greetings_card_category'
我也收到此警告
[警告] 数据库中有 6 个以前执行的迁移未注册。
在我的迁移目录中,我只有两个迁移:
Version20200722104913.php
Version20200722143619.php
如果有帮助的话,这里是状态。
bin/console do:mi:status
| Versions | Previous | DoctrineMigrations\Version20200717093052 |
| | Current | DoctrineMigrations\Version20200722150530 |
| | Next | DoctrineMigrations\Version20200722104913 |
| | Latest | DoctrineMigrations\Version20200722143619 |
|--------------------------------------------------------------------------------------------------------
| Migrations | Executed | 6 |
| | Executed Unavailable | 6 |
| | Available | 2 |
| | New | 2
此时我真的很想拥有 1 个干净的数据库和 1 个迁移。
如何做到这一点?
【问题讨论】:
-
我已经尝试过几次使用迁移,结果一团糟。我回退到教义:模式:创建,删除和更新。只需清空(或删除)迁移表并避免迁移,至少在您的架构更多或稳定之前。
-
@Cerad 我发布了一个解决方案来避免这种混乱,直到 shema 稳定。 :-)
标签: doctrine-orm doctrine