从yii2模型重新创建数据库表

yzuktlbb  于 2021-06-20  发布在  Mysql
关注(0)|答案(2)|浏览(372)

我用yii2编写了一个应用程序,不幸的是,我们丢失了所有的数据库备份。我们现在只有应用程序文件。在现有模型的基础上,有没有一种较短的方法来重新创建98个数据库表?我注意到在“/app/runtime/cache”下缓存了大约22个表的模式。有人做过这样的事吗?

p4tfgftt

p4tfgftt1#

我得提醒你,我用过这个,它非常有用,当你需要一些a$$节省。
这是一个非常有趣的gii扩展,它至少可以帮助您重新启动数据库,然后您就可以处理它来解决一些问题。
它允许您做的是,在您的模型中构建从phpdoc的迁移。用户可以使用这些迁移来重建数据库。
你需要安装https://github.com/insolita/yii2-migrik 通过使用composer,如果它给您带来一些麻烦,请使用版本2.3而不是3。
添加

"insolita/yii2-migration-generator": "2.3"

然后打开gii并使用“模型和phpdoc迁移”。



现在使用yii2迁移系统来构建表,检查迁移,将它们与模型进行比较,并添加关系,将它们添加起来,并且需要修复一些东西。这并不完美。但这样可以节省时间。
https://www.yiiframework.com/doc/guide/2.0/en/db-migrations
祝你好运。

jjhzyzn0

jjhzyzn02#

您需要为每个模型创建迁移脚本来执行数据库备份。
您需要在迁移脚本中创建数据库架构 up() 函数,需要使用以下命令来管理数据库。

- migrate                      Manages application migrations.
    migrate/create             Creates a new migration.
    migrate/down               Downgrades the application by reverting old migrations.
    migrate/fresh              Truncates the whole database and starts the migration from the beginning.
    migrate/history            Displays the migration history.
    migrate/mark               Modifies the migration history to the specified version.
    migrate/new                Displays the un-applied new migrations.
    migrate/redo               Redoes the last few migrations.
    migrate/to                 Upgrades or downgrades till the specified version.
    migrate/up (default)       Upgrades the application by applying new migrations.

有关更多信息,请参阅yii2db迁移的官方文档。
迁移脚本跟踪数据库,如果它再次丢失,您可以轻松地创建它。
谢谢。

相关问题