Node.js 节点js的架构和数据迁移

Node.js 节点js的架构和数据迁移,node.js,postgresql,sequelize.js,Node.js,Postgresql,Sequelize.js,是否有任何工具与Django South类似,但用于Node 现在我正在与Sequelize合作。如果我没弄错的话,Sequelize没有基于现有模型创建迁移文件的选项。 因此,要创建新模型/表,步骤如下: 使用创建模型续集模型:创建 编辑生成的迁移文件-添加用于创建表的实际代码 在up部分下的DB中 使用sequelize db:migrate运行迁移 我正在寻找能够基于现有模型创建迁移文件的东西,并像South为Django所做的那样对其进行管理 有什么选择吗?与Sequelize最接近

是否有任何工具与Django South类似,但用于Node

现在我正在与Sequelize合作。如果我没弄错的话,Sequelize没有基于现有模型创建迁移文件的选项。 因此,要创建新模型/表,步骤如下:

  • 使用
    创建模型续集模型:创建
    
    
  • 编辑生成的迁移文件-添加用于创建表的实际代码 在
    up
    部分下的DB中
  • 使用
    sequelize db:migrate
    运行迁移
我正在寻找能够基于现有模型创建迁移文件的东西,并像South为Django所做的那样对其进行管理


有什么选择吗?

与Sequelize最接近的是

它允许您有一个如下所示的迭代周期:

  • 创建/更新模型--手动或使用
    sequelize cli
  • 运行
    makemigrations
    自动生成
    up
    down
    迁移
  • 必要时重复上述步骤
  • 虽然这很有帮助,但我发现它在一些关键领域有所欠缺:

  • 向下迁移的创建可能不正确。因此,它可能会在删除依赖表之前尝试删除表
  • 在多字段索引周围有一些它没有正确输出的配置
  • 有,所以似乎有一些额外的贡献者正试图让它更适合生产。。。但我还没有找到像Django迁移(以前是Django South)这样干净可靠的东西。我的处境和4年前一样

    我的选择:

    • Waterline只允许ORM和diff工具(如dbdiff)生成一个与新模式(通过使用“drop”进行Waterline迁移生成)和生产模式不同的文件。通过该输出,您可以在安全模式下逐个查询地运行查询
    • Prev选项加上knex迁移。但是您必须创建自己的迁移文件。Knex没有要比较的模式文件,但有一个请求功能。
      • 使用船帆,但改变吃水线,然后尝试@paulmest答案
      • 使用船帆,但更改水线,以形成自动生成的用途

    TypeORM支持基于模型的迁移。它可以直接将数据库与模型同步,还可以创建迁移文件

    我认为普里斯玛是另一个选择。它看起来不那么受欢迎,但很有前途

    不管怎样,没有可靠的工具来实现这一点都是荒谬的。在过去的几年中,我参与了django和.net项目,创建迁移非常容易。但是,当您尝试将node.js用于后端时,您会遇到很多问题

    我使用的是sequelize,当我看到没有正式的方法从模型创建自动迁移时,我放弃了使用它。根据我的经验,使用手动编写的迁移来维护模型变得非常困难

    现在我唯一的选择是TypeORM,它让我很烦,如果TypeORM没有维护或者我想使用另一个库等等,就没有其他选择了


    我正在认真考虑放弃在后端使用node.js。然而,有很好的工具可以创建与现代前端工具(如Next.js)集成的项目,找到一个好的orm是一个很大的问题。

    如果有什么东西存在,我还没有找到它。在过去的几个月里,我一直在定期搜索。我遇到了SailsJS,它具有迁移现有数据库模式以匹配当前模型的机制,但它当前不输出迁移文件。此外,他们在修改过程中采取的方法可能会丢失数据。但这是我发现的最接近的东西。Sequelize似乎是Node.js目前的最佳选择。遗憾的是。@Kenneth,DanDuh,找到Node.js的迁移工具了吗?@brillout.com,不幸的是还没有。。。考虑创建我自己的…您可以使用从现有模式生成模型,但我认为它无法处理关系。如果您想提交修补程序,这似乎是一个不错的开始…:)您可能想观看本期节目: