【问题标题】:Sequelize is not loading the database tables properlySequelize 未正确加载数据库表
【发布时间】:2015-04-09 11:49:54
【问题描述】:

我有一个快递服务器,它确实有:

app.db = SequelizeData config.db
app.db.sequelize.sync({force: false}).complete (err) ->
  console.log err
  console.log 'Initialzed database on:'
  console.log config.db

SequelizeData 是:

(function() {
  'use strict';
  var Sequelize, fs, path, _;

  _ = require('lodash');

  fs = require('fs-extra');

  path = require('path');

  Sequelize = require('sequelize');

  module.exports = function(config) {
    var db, files, modelPath, myDb, sequelize;
    sequelize = new Sequelize(config.database, config.username, config.password, {
      dialect: 'postgres',
      host: config.host,
      port: config.port,
      logging: false,
      define: {
        charset: 'utf8',
        collate: 'utf8_general_ci'
      }
    });
    db = {};
    modelPath = __dirname + "/models";
    files = fs.readdirSync(modelPath);
    _.each(files, function(file) {
      var model;
      if ('.coffee' === path.extname(file)) {
        model = sequelize["import"](path.join(modelPath, file));
        return db[model.name] = model;
      }
    });
    Object.keys(db).forEach(function(modelName) {
      if ('associate' in db[modelName]) {
        return db[modelName].associate(db);
      }
    });
    myDb = _.assign(db, {
      sequelize: sequelize,
      Sequelize: Sequelize
    });
    return myDb;
  };

}).call(this);

基本上遍历我的模型并将它们添加到sequelize。但是,虽然我的数据库存在,但它不会创建任何表。我做错了什么?

谢谢!

【问题讨论】:

    标签: sequelize.js


    【解决方案1】:

    您确定您实际上可以要求 *.coffee 文件吗?您应该确保导入确实有效。

    您可能需要调用Sequelize.sync({force:true}) 来让Sequelize 删除现有表并重新创建它们。您需要在每次架构更改时执行此操作,或手动更改架构。

    您还可以设置logging: true 以查看正在发送的具体 SQL 命令。

    ps:这是 Node:您不需要将模块包装在闭包中:只需将它们放在自己的文件中并 require() 它们即可。

    【讨论】:

    • 原来是coffee script,后来变成了JS,我猜coffee脚本就是这样处理的?
    • 好吧,您将 .coffee 文件传递​​给 Sequelize.register,这可能需要 .js 文件。看起来你可以用stackoverflow.com/a/4769079/2557842 之类的东西来解决这个问题。但是你可以很容易地测试这个,只需观察导入返回的内容。
    猜你喜欢
    • 2023-03-12
    • 2018-08-14
    • 2019-05-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多