作者:laoshu仔 | 来源:互联网 | 2022-12-06 13:31
我创建了一个简单的表:
import { Column, Entity, PrimaryGeneratedColumn } from "typeorm"
@Entity()
export class Test {
@PrimaryGeneratedColumn()
public id!: number
@Column({ nullable: false })
public name!: string
@Column({ nullable: false, type: "float" })
public price!: number
}
我生成迁移并也运行它。当数据库中没有数据并且运行服务器时,它将成功。但是,当我在数据库中添加1行并再次运行它时,出现以下错误:
QueryFailedError: the column «price» contain null values
该数据库明确具有包含所有数据的行。我尝试了很多情况,但没有一个是正确的。
有人对此有想法吗?
1> Alain1405..:
我遇到了类似的问题,并在此线程的底部进行了报告。
您可能synchronize: true
在ORM配置上。因此,每次您运行应用程序时,Typeorm都会尝试创建表。如果您的数据库中有数据,它将引发该误导性错误。
从这里:
同步-指示是否应在每次启动应用程序时自动创建数据库模式。请谨慎使用此选项,不要在生产中使用此选项-否则可能会丢失生产数据。此选项在调试和开发期间很有用。作为替代方案,您可以使用CLI并运行schema:sync命令。请注意,对于MongoDB数据库,它不会创建架构,因为MongoDB是无架构的。相反,它仅通过创建索引进行同步。