有什么方法可以在 beego 中创建迁移吗?

Is there any way to create migrations in beego?

除了从头开始创建数据库表的 "syncdb" 命令外,我没有在文档中找到任何内容。是否有任何命令可以基于 ORM 模型创建和 运行 迁移?就像在 Django 中一样?添加字段、更改类型等

不,orm.RunSyncdb(name, force, verbose) 和它的命令行等价物只做像 django 的 south 这样的工具可以做的一小部分。

Beego 的 orm 可以:

  • 从头开始创建新的 table
  • 删除所有 tables (force = true)
  • 在扩展模型时添加新列

您需要处理删除列以及对用于初始创建 table 的列参数的任何更改。

遗憾的是,beego 不包含此功能,但 go 中的框架(截至今天)不包含此功能。 相反,他们都将其转发给其他图书馆来处理。

但是您可以使用 goose 进行迁移:

或以下线程中讨论的任何其他迁移库:

请记住,由于 beego 的模块化,您还可以使用任何其他 orm(如 gorm)。

如果您想要一份关于 go 生态系统的 tools/libs 列表,请随时在 google 中查找:avelino/awesome-go。

是的,您现在可以在 beego 中创建迁移。例如,如果您需要创建一个新的table,您可以首先使用蜜蜂工具创建一个新的迁移文件:

bee generate migration create_user_table

此命令将在 database/migrations 文件夹中创建一个文件。文件名包含迁移的日期、时间和名称。

更多详情可以查看这篇文章https://ncona.com/2017/10/database-migrations-in-beego