我正在为一个使用NodeJS的项目做后端.为了管理数据库,我使用了typeorm
.
我创建了几个表,没有问题.
现在我try 创建一个新的表(或实体),其中有一个日期列,并且该列使用decorator @CreateDateColumn()
,当添加新行时,decorator @CreateDateColumn()
应该插入当前日期,如下所示:
@Entity()
export class Order{
@PrimaryGeneratedColumn()
id: number
@Column()
first_name: string
@Column()
last_name: string
@Column()
email: string
@CreateDateColumn() //This one here
created_at: string
@OneToMany(() => OrderItem, orderItem => orderItem.order)
order_items: OrderItem[]
}
事实上,我将类型设置为string
不是问题,因为我已经try 将其设置为Date
,结果相同.
当我保存文件,typeorm
try 创建表时,这是我返回的结果:
code: 'ER_PARSE_ERROR',
errno: 1064,
sqlState: '42000',
sqlMessage: "You have an error in your SQL syntax near '(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6), PRIMARY KEY (`id`)) ENGINE=InnoDB' at line 1",
sql: 'CREATE TABLE `order` (`id` int NOT NULL AUTO_INCREMENT, `first_name` varchar(255) NOT NULL, `last_name` varchar(255) NOT NULL, `email` varchar(255) NOT NULL, `created_at` datetime(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6), PRIMARY KEY (`id`)) ENGINE=InnoDB'
当我注释掉decorator 时,问题就消失了,所以肯定是SQL部分.
在谷歌搜索之后,有人提到SQL版本可能是一个问题.我使用的数据库的SQL版本是Server version: 5.5.62-0ubuntu0.14.04.1
有什么 idea 吗?