如何将架构加载到Node-MySQL ClearDB Azure?

时间:2015-11-10 07:12:49

标签: mysql node.js azure node-mysql cleardb

我有一个架构,我想加载到我的Azure / Node服务器上:

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)
)

当服务器使用node-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

1 个答案:

答案 0 :(得分:1)

我尝试重现此问题,但在服务器使用node-mysql连接到本地mysql和Azure ClearDB时未能收到任何错误。我建议您使用一些第三方GUI管理工具(如HeidiSQL for Windows或Dbeaver)仔细检查mysql,以获得任何平台支持Java。

您可以在http://www.heidisql.com/http://dbeaver.jkiss.org/

下载它们

我认为您需要为每个JS句子添加符号;,并使用var代替const来声明变量,因为遵循JavaScript规范和node-mysql文档,虽然在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:password@host/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);
});