Javascript 未知列';创建于';在';字段列表

Javascript 未知列';创建于';在';字段列表,javascript,mysql,node.js,adonis.js,Javascript,Mysql,Node.js,Adonis.js,这是我的客户_schema.js文件: up () { this.create('customers', (table) => {

这是我的客户_schema.js文件:

up () {                                                                                                                                        
    this.create('customers', (table) => {                                                                                                        
      table.increments()                                                                                                                         
      table.string('name', 30)                                                                                                                   
    })                                                                                                                                           
  }
CustomerSeed.js:

class CustomerSeeder {                                                                                                                           
  async run () {                                                                                                                                 
    const customer = await Factory                                                                                                               
      .model('App/Models/Customer')                                                                                                          
      .create()                                                                                                                              
    console.log('customer: ')                                                                                                                    
  }                                                                                                                                              
}
Customer.js模型为“空”

我运行迁移,一切正常,但无法运行种子:
adonis seed
抛出此错误消息:

code: 'ER_BAD_FIELD_ERROR',                                                                                                                    
  errno: 1054,                                                                                                                                   
  sqlMessage: "Unknown column 'created_at' in 'field list'",                                                                                     
  sqlState: '42S22',                                                                                                                             
  index: 0,                                                                                                                                      
  sql:                                                                                                                                           
   "insert into `customers` (`created_at`, `name`, `updated_at`) values ('2019-03-04 20:01:17', 'Peter Walsh', '2019-03-04 20:01:17')" }
为什么会发生这种情况?我甚至没有在模式文件中声明
table.timestamps()
,并且:


describe customers;                                                                                                                              
+-------+------------------+------+-----+---------+----------------+                                                                             
| Field | Type             | Null | Key | Default | Extra          |                                                                             
+-------+------------------+------+-----+---------+----------------+                                                                             
| id    | int(10) unsigned | NO   | PRI | NULL    | auto_increment |                                                                             
| name  | varchar(30)      | YES  |     | NULL    |                |                                                                             
+-------+------------------+------+-----+---------+----------------+                                                                             
2 rows in set (0.01 sec)
编辑:

将这两个功能添加到您的模型中,它应该可以工作:)

编辑:


将这两个函数添加到您的模型中,它应该会起作用:)

要添加到前面的好答案中,当您随着应用程序的增长拥有许多模型时,您可以自动执行上述解决方案,而不是按模型编写:

'use strict'

class NoTimestamp {
  register (Model) {
    Object.defineProperties(Model, {
      createdAtColumn: {
        get: () => null,
      },
      updatedAtColumn: {
        get: () => null,
      },
    })
  }
}

module.exports = NoTimestamp

感谢向我展示解决方案的Romain Lanz。

要补充前面的好答案,随着应用程序的增长,当您有很多模型时,您可以自动化上述解决方案,而不是按照模型编写:

'use strict'

class NoTimestamp {
  register (Model) {
    Object.defineProperties(Model, {
      createdAtColumn: {
        get: () => null,
      },
      updatedAtColumn: {
        get: () => null,
      },
    })
  }
}

module.exports = NoTimestamp

感谢罗曼·兰兹为我展示了解决方案。

我按照你的建议做了,但我明白了问题所在。奇怪的是,我的MySQL表根本没有这些列,因为我的模式文件没有声明它们+1尽管很抱歉,我在问题中没有提到它,但我使用了
数据库/factory.js
为表添加种子。谢谢我使用MySQL数据库这是你做的很多工作,谢谢:)我以前尝试过这个解决方案,当你给我文档的链接时,我检查了你的代码和我的代码之间的差异:在我的
updateDataColumn()
中,而不是返回
null
我返回了
(一个点),因此,您的第一个解决方案是正确的。这是Node.js应用程序的干净解决方案(从我所读到的。你在这方面花了很多精力,你得到了我的尊重。非常感谢。我按照你的建议做了,但我得到了问题。奇怪的是,我的MySQL表根本没有这些列,因为我的模式文件没有声明它们。+1的努力虽然抱歉,我在问题中没有提到,但我使用了
database/factory.js
为表种子。谢谢我使用MySQL数据库这是你做的很多工作,谢谢:)我以前尝试过这个解决方案,当你给我文档的链接时,我检查了你的代码和我的代码之间的差异:在我的
updateDataColumn()中
而不是返回
null
我返回了
(一个点),因此您的第一个解决方案是正确的。这是Node.js应用程序的一个干净的解决方案(据我所知。您在这方面花费了很多精力,我尊敬您。非常感谢您。