【问题标题】:Is there any way to create migrations in beego?有没有办法在beego中创建迁移?
【发布时间】:2015-01-29 22:58:49
【问题描述】:

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

【问题讨论】:

    标签: database migration beego


    【解决方案1】:

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

    Beego 的 orm 可以:

    • 从头开始创建新表
    • 删除所有表(强制 = true)
    • 在扩展模型时添加新列

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

    【讨论】:

    • 那么,如何使用 beego 处理数据库迁移?
    • 老式方法,通过备份sql schema,并使用sql语句删除或更改列。如果您使用 git,只需将架构备份与包含您所做的任何架构更改语句的 .sql 文件一起保存在 repo 中。在这两者之间,您应该能够找到回到以前状态的方法。
    【解决方案2】:

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

    不过,您可以使用 goose 进行迁移:

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

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

    如果您想要有关 go 生态系统的工具/库列表,请随时在 google 中查找:avelino/awesome-go。

    【讨论】:

      【解决方案3】:

      是的,您现在可以在 beego 中创建迁移。例如,如果您需要创建一个新表,您可以从使用 bee 工具创建一个新的迁移文件开始:

      bee generate migration create_user_table
      

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-01-06
        • 1970-01-01
        • 2014-07-26
        • 1970-01-01
        • 1970-01-01
        • 2016-08-19
        相关资源
        最近更新 更多