2015-11-10 57 views
0

我已经得到了我想要加载到连接到我的天青/节点服务器架构:如何将模式加载到Node-MySQL ClearDB Azure中?

USE mydatabase; 

CREATE TABLE users(
    id BIGINT NOT NULL AUTO_INCREMENT, 
    first_name VARCHAR(40), 
    last_name VARCHAR(40) 
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL, 
    PRIMARY KEY(user_id) 
) 

当服务器连接使用节点的MySQL,它说ER_NO_SUCH_TABLE

关于如何进行的任何建议?

编辑: 这里的节点代码:

const mysql = require("mysql") 

function connectToDB() { 
    const connection_params = { 
    host: process.env.db_host || "localhost", 
    user: process.env.db_username || "root", 
    password: process.env.db_password || "", 
    database: process.env.db_database || "test_database" 
    } 
    const connection = mysql.createConnection(connection_params) 
    connection.connect(console.log) 
    return connection 
} 

module.exports = connectToDB 
+0

你使用像sequelize任何ORM框架?请粘贴更多详细信息:代码等 –

+0

使用node-mysql协商MySQL和Node之间的连接,我可以编写SQL查询。所以它不是一个ORM。 您认为我应该添加的任何其他细节? – mLuby

+0

我知道node-mysql是nodejs的mysql驱动程序。你能提供你的节点代码来帮助测试这个问题吗? –

回答

1

我试图重现该问题,但未能当服务器连接到本地MySQL和使用Azure的ClearDB node-mysql得到任何错误。我建议你通过使用一些第三方GUI管理工具(如HeidiSQL for Windows或Dbeaver)来仔细检查mysql,以支持任何平台支持Java。

您可以在http://www.heidisql.com/下载它们并http://dbeaver.jkiss.org/

我认为你需要添加符号;每个JS句子和声明,因为下面的JavaScript规范和Node-mysql的文档的varibale使用var代替const ,虽然它在NodeJS上没有符号;,但工作正常。

请参考以下这些文档:

当我连接MySQL和加载的表模式来创建表时,我发现你的SQL DDL语句不正确。请参阅mysql官方文档http://dev.mysql.com/doc/refman/5.6/en/create-table.htmlhttp://dev.mysql.com/doc/refman/5.6/en/timestamp-initialization.html。 注:最新型DATETIME & TIMESTAMPE,MySQL的官方文档说:

DEFAULT CURRENT_TIMESTAMP和ON UPDATE CURRENT_TIMESTAMP不能与DATETIME列上。

因此,这里是表ddl sql和代码更新。

表DDL:

CREATE TABLE users (
    id BIGINT NOT NULL AUTO_INCREMENT, 
    first_name VARCHAR(40), 
    last_name VARCHAR(40), 
    created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, 
    PRIMARY KEY(id) 
) 

代码:

var mysql = require('mysql'); 

var connection_parames = "mysql://user:[email protected]/test_database"; 

var connection = mysql.createConnection(connection_parames); 

var table_ddl = "CREATE TABLE users ("+ 
    "id BIGINT NOT NULL AUTO_INCREMENT,"+ 
    "first_name VARCHAR(40),"+ 
    "last_name VARCHAR(40),"+ 
    "created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,"+ 
    "PRIMARY KEY(id)"+ 
")"; 

connection.query(table_ddl, function(err, result) { 
    if (err) { 
     console.log(err); 
    } 
    console.log(result); 
}); 
相关问题