0

在迁移到sails 1.0时,当我执行以下操作时出现此错误sails lift-

Error: Consistency violation: Instantiated Waterline model already has a `datastore` property

我的配置 -

// config/datastores.js
module.exports.datastores = {
  default : {
    mySQL: {
      adapter: 'sails-mysql',
      url: 'mysql://username@localhost:3306/my_db'
    }
  }
}

// config/models.js
module.exports.models = {
  datastore: 'mySQL',
  migrate: 'drop',
  attributes: {
    // timezone-agnostic ISO 8601 JSON timestamp strings (e.g. '2017-12-30T12:51:10Z')
    createdAt: { type: 'string', autoCreatedAt: true, },
    updatedAt: { type: 'string', autoUpdatedAt: true, }
  }
};

// config/env/development.js
datastores: {
    mySQL: {
      adapter: 'sails-mysql',
      url: 'mysql://username@localhost:3306/my_db'
    }
  }
4

1 回答 1

0

在 Sails 1.0 中,默认数据存储区被简单地称为default,最佳实践是default使用您需要的任何设置进行配置,而不是创建一个单独命名的数据存储区(如mySQL),除非您在应用程序中确实需要多个数据存储区。所以试试:

// config/datastores.js
module.exports.datastores = {
  default : {
    adapter: 'sails-mysql',
    url: 'mysql://username@localhost:3306/my_db'
  }
}

// config/models.js
module.exports.models = {
  // No need for a `datastore` property; it will default to `default`.
  migrate: 'drop',
  attributes: {
    // timezone-agnostic ISO 8601 JSON timestamp strings (e.g. '2017-12-30T12:51:10Z')
    createdAt: { type: 'string', autoCreatedAt: true, },
    updatedAt: { type: 'string', autoUpdatedAt: true, }
  }
};

// No need for `datastores` property in config/env/development.js
// if you use the default datastore in development.
于 2017-05-22T03:40:00.207 回答