当前位置: 首页 > 知识库问答 >
问题:

表迁移文件

胡夕
2023-03-14

我目前正在学习nestjs。当我遇到typeorm时,它是生成迁移的脚本,它在一个文件中创建每个表。现在在我的工作场所,我们在这里使用快速Js,他们为每个表创建迁移文件。结构看起来或多或少像下面:

|- src
  |- migrations
    |- 20211003174831-user.js
    |- 20211003175002-product.js
    |- 20211003175307-invoice.js
    |- 20211003175601-invoice-product.js

虽然我更喜欢nestjs方法,但我想知道哪种方法是创建迁移文件的最佳方法。如果更好的方法是上面的例子,那么优点和缺点是什么。任何帮助都将不胜感激,谢谢。

编辑:长话短说,表迁移方法哪个更好,每个表一个文件还是每个表多个文件,就像上面的例子一样。

共有1个答案

荣沈义
2023-03-14

创建迁移文件的最佳方法取决于您的首选项。

然而,避免错误和时间浪费的一个好做法是通过使用类型迁移生成迁移文件来创建实体:生成,就像上面所做的那样,但是阅读起来可能很复杂。

使用typeorm迁移手动创建迁移:使用TypeORM迁移应用编程接口创建也是一个很好的实践,但是它需要很长时间,并且可能是错误的来源,尤其是关于列类型。

当您需要更改表或列时,生成迁移也很有用,您不需要自己搜索修改。

最后,切勿在生产中使用同步

 类似资料:
  • 如果运行,它会失败 未找到基表或视图:1146表*.迁移不存在。 数据库是空的。 如果我运行我会看到迁移表,但它是空的。 DB显示迁移表,但它是空的。 如果我再次运行,数据库再次为空,我会得到相同的错误: 未找到基表或视图:1146表*.迁移不存在。 也许有人知道这里发生了什么。

  • 应使用版本控制工具记录 schema.rb (或 structure.sql )的变化。 应使用 rake db:scheme:load 而不是 rake db:migrate 来初始化空数据库。 应在迁移文件中设置默认值,而不是在应用层面设置。 # 差——在应用中设置默认值 def amount self[:amount] or 0 end 虽然许多 Rails 开发者建议在 Rails 中

  • RSS 首先,安装 hexo-migrator-rss 插件。 $ npm install hexo-migrator-rss --save 插件安装完成后,执行下列命令,从 RSS 迁移所有文章。source 可以是文件路径或网址。 $ hexo migrate rss <source> Jekyll 把 _posts 文件夹内的所有文件复制到 source/_posts 文件夹,并在 _con

  • Laravel版本:5.7 PHP版本: 7.2.9 数据库驱动程序 说明上次迁移创建表,但未在迁移表中注册 繁殖步骤我有14个迁移。如果我运行的表被创建,但没有注册为运行迁移我已经丢弃了家庭数据库几次 我的迁移状态表 最终,当我想刷新、回滚或迁移以进行开发时,我会收到这样一个错误,告诉我表存在,但不在迁移中 Illumb\Database\QueryException:SQLSTATE[42S0

  • Angular 是使用 TypeScript 构建的,并且支持向 Angular 提供元信息的装饰器。 TypeScript 的装饰器会让语法感觉更加“自然”,尽管有可能使用 Angular 没有的功能。

  • 迁移cache分页 仓库地址: cache 安装 composer require illuminate/cache 暂时实现 redis方式 还需安装 composer require illuminate/redis composer require predis/predis //个人比较喜欢predis 启动predis function frameInitialized() {