将遗留的mysql数据库与新的sails应用程序

时间:2016-03-07 00:15:26

标签: mysql sails.js sails-mongo sails-postgresql

设置sails模型以使用带字符串主键(PK)的现有MySql数据库时,不再自动生成PK。 我错过了什么或者我是否必须在beforeCreate中实施PK生成?如果我要实现PK生成,我不确定如何避免与传统数据库中的现有密钥发生密钥冲突。

调用Cat.create().exec(console.log)会引发以下错误:

Invalid attributes sent to User:
• id
  • `undefined` should be a string (instead of "null", which is a object)
  • "required" validation rule failed for input: null

该模型具有以下代码:

module.exports = {
connection: 'laraschMysql',
schema: true,
identity: 'Contest',
tableName: 'Contest',
migrate: 'safe',
autoPK: false,
autoCreatedAt: false,
autoUpdatedAt: false,
autoUpdatedAt: false,
  attributes: {
    id: {
      type: 'string',     //varchar(255) in the db                                                                       
      autoIncrement:true, // not working?
      primaryKey: true,
      required: true
    }
}

更一般地说:将遗留数据库与新的sails应用程序一起使用时,常见问题/绊脚石/问题是什么?

是否有任何好的指南(帆文档似乎没有彻底涵盖这个主题)设置带帆的遗留数据库?

1 个答案:

答案 0 :(得分:0)

基于Sails.js文档,autoIncrement必须始终为:'integer'

  

自动增量

     

将属性设置为自动增量键。当新记录是   添加到模型中,如果未指定此属性的值,则为   将通过递增最近记录的值来生成   一。注意:指定autoIncrement的属性应始终为   类型:'整数'。另外,请记住支持程度各不相同   跨不同的数据存储区。例如,MySQL不允许更多   每个表不止一个自动递增列。