我开始研究typeorm,我很困惑,如果我向一个已经用数据持久化的现有实体添加一个新列,会发生什么。我用的是SQLite。
我在文档中看到,在“迁移”部分,如果我想添加一个新列,似乎必须完成一个过程。
但是当我看到this issue in typeorm's github时,我明白了,如果我只是将新的“@Column”注解属性添加到Entity类就足够了,并且typeorm将在应用程序启动时自动创建列。
我真的希望typeorm能够自动处理模式更改。
有人能帮忙吗?
我开始研究typeorm,我很困惑,如果我向一个已经用数据持久化的现有实体添加一个新列,会发生什么。我用的是SQLite。
我在文档中看到,在“迁移”部分,如果我想添加一个新列,似乎必须完成一个过程。
但是当我看到this issue in typeorm's github时,我明白了,如果我只是将新的“@Column”注解属性添加到Entity类就足够了,并且typeorm将在应用程序启动时自动创建列。
我真的希望typeorm能够自动处理模式更改。
有人能帮忙吗?
2条答案
按热度按时间rqqzpn5f1#
TypeOrm能够更改模式,但不会在服务器启动时自动运行迁移(这不是想要的行为)。如果您希望在应用程序启动时执行迁移,则需要执行以下步骤:
1.创建迁移文件:
更改实体(如添加新列)后,您需要生成一个迁移文件:
字符串
然后将该迁移文件创建到ormconfig.json中配置的文件夹中。
1.运行迁移
在启动服务器之前,需要创建数据库连接并运行迁移。所以你的主文件应该是这样的
型
出于开发目的,您还可以使用模式同步,在这种情况下,typeorm将您的数据库与您的实体同步:
型
6ss1mwsb2#
我必须创建新的迁移,这将在表用户中的“password”和“created_at”列之间添加新列“is_delete”
我创建了新的迁移文件。在public async up中,我插入了:
字符串
也许对某人会有用