私は、Postgres と Express で node-orm2 を使用して、アプリの起動時にテーブルを作成しています。私は GitHub の問題を調べてきましたが、他の列が作成されていない理由を見つけることができませんでした。私は何を間違っていますか?
テーブルなしでアプリを起動したときのコンソール出力:
[SQL/postgres] SELECT * FROM information_schema.tables WHERE table_name = 'user'
[SQL/postgres] CREATE TABLE "user" ("id" SERIAL, PRIMARY KEY ("id"))
model_user.js (5 つの列を作成する必要がありますが、1 つしか作成されません)
var bcrypt = require('bcrypt-nodejs');
module.exports = function(db, cb) {
return {
id: { type: 'serial', key: true}, // <------- only column that gets created
name: { type: 'text', size: 128 },
email: { type: 'text', size: 128 },
createdAt : { type: 'date', required: true, time: true },
password: { type: 'text', size: 128 },
}, {
hooks: {
beforeValidation: function () {
this.createdAt = new Date();
}
},
methods : {
generateHash: function(password) {
return bcrypt.hashSync(password, bcrypt.genSaltSync(8), null);
},
validPassword: function(password) {
return bcrypt.compareSync(password, this.local.password);
}
} // end methods
};
} // end exports
config_db.js
var orm = require('orm');
var model_user = require('../models/model_user');
module.exports = function(app) {
var opts = {
database : "somedb",
protocol : "postgres",
host : "127.0.0.1",
port : 5432,
user : "someguy",
password : "",
query : {
pool : true,
debug : true,
strdates : false
}
};
app.use(orm.express(opts, {
define: function (db, models, next) {
models.user = db.define("user", model_user);
db.sync();
next();
}
}));
}