使用 Heroku (Express Server) 部署时如何创建 MySQL 模式
How to create a MySQL schema when deploying with Heroku (Express Server)
假设我有以下 server.js 文件:
server.js
var express = require('express');
var app = express();
var mysql = require('mysql');
var dbhelpers = require('./public/database_helpers.js')
var bodyParser = require('body-parser')
app.use(express.static(__dirname + '/public'));
app.use(express.static(__dirname + '/public/views'));
app.use(express.static(__dirname + '/public/controlers'));
app.use(express.static(__dirname + '/public/lib'));
app.use(bodyParser())
var connection = mysql.createConnection({
**Correct info**
});
connection.connect(function(err){
if(!err) {
console.log("Database is connected ... \n\n");
} else {
console.log("Error connecting database ... \n\n");
}
});
app.post('/signup',function(req,res){
var newUser = req.body;
connection.query('INSERT INTO users SET ?',newUser, function(err, rows,fields){
if (!err){
console.log("posted to database")
res.sendStatus(200);
} else{
console.log('Error while performing Query.');
res.sendStatus(500);
}
});
})
app.get('/artistsearch',dbhelpers.checkDbArtist)
app.post('/artistsearch', dbhelpers.insertDb)
app.post('/reviews',dbhelpers.insertReviewDb)
app.listen(process.env.PORT || 3000);
console.log("Listening at 3000")
我最近部署到 heroku 并使用了 clearDB 插件,因为我正在使用 MySQL。日志表明我已经能够连接到数据库,但问题是我相信 Heroku 创建了一个空数据库。我如何在我的 clearDB 中创建以下模式:
schema.sql
CREATE TABLE users(
users_id INT NOT NULL AUTO_INCREMENT,
user_username VARCHAR(100) NOT NULL,
user_password VARCHAR(40) NOT NULL,
PRIMARY KEY ( users_id )
);
CREATE TABLE artist(
artist_id INT NOT NULL AUTO_INCREMENT,
artist_name VARCHAR(100) NOT NULL,
artist_genre VARCHAR(100) NOT NULL,
artist_imageurl VARCHAR(100) NOT NULL,
artist_bio VARCHAR(1000) NOT NULL,
PRIMARY KEY ( artist_id )
);
CREATE TABLE reviews (
review_id INT NOT NULL AUTO_INCREMENT,
user_name VARCHAR(100) NOT NULL,
venue VARCHAR(100) NOT NULL,
number_of_stars INT NOT NULL,
review_details VARCHAR(10000) NOT NULL,
artist_id VARCHAR(100) NOT NULL,
PRIMARY KEY ( review_id )
);
有人知道吗?
首先,您应该键入 heroku config
以获取您的 clearDB 凭据。
然后,您可以从您的终端运行这个命令:mysql --host=us-cdbr-east.cleardb.com --user=xxxx --password=xxxx --reconnect heroku_xxxxxx < schema.sql
假设我有以下 server.js 文件:
server.js
var express = require('express');
var app = express();
var mysql = require('mysql');
var dbhelpers = require('./public/database_helpers.js')
var bodyParser = require('body-parser')
app.use(express.static(__dirname + '/public'));
app.use(express.static(__dirname + '/public/views'));
app.use(express.static(__dirname + '/public/controlers'));
app.use(express.static(__dirname + '/public/lib'));
app.use(bodyParser())
var connection = mysql.createConnection({
**Correct info**
});
connection.connect(function(err){
if(!err) {
console.log("Database is connected ... \n\n");
} else {
console.log("Error connecting database ... \n\n");
}
});
app.post('/signup',function(req,res){
var newUser = req.body;
connection.query('INSERT INTO users SET ?',newUser, function(err, rows,fields){
if (!err){
console.log("posted to database")
res.sendStatus(200);
} else{
console.log('Error while performing Query.');
res.sendStatus(500);
}
});
})
app.get('/artistsearch',dbhelpers.checkDbArtist)
app.post('/artistsearch', dbhelpers.insertDb)
app.post('/reviews',dbhelpers.insertReviewDb)
app.listen(process.env.PORT || 3000);
console.log("Listening at 3000")
我最近部署到 heroku 并使用了 clearDB 插件,因为我正在使用 MySQL。日志表明我已经能够连接到数据库,但问题是我相信 Heroku 创建了一个空数据库。我如何在我的 clearDB 中创建以下模式:
schema.sql
CREATE TABLE users(
users_id INT NOT NULL AUTO_INCREMENT,
user_username VARCHAR(100) NOT NULL,
user_password VARCHAR(40) NOT NULL,
PRIMARY KEY ( users_id )
);
CREATE TABLE artist(
artist_id INT NOT NULL AUTO_INCREMENT,
artist_name VARCHAR(100) NOT NULL,
artist_genre VARCHAR(100) NOT NULL,
artist_imageurl VARCHAR(100) NOT NULL,
artist_bio VARCHAR(1000) NOT NULL,
PRIMARY KEY ( artist_id )
);
CREATE TABLE reviews (
review_id INT NOT NULL AUTO_INCREMENT,
user_name VARCHAR(100) NOT NULL,
venue VARCHAR(100) NOT NULL,
number_of_stars INT NOT NULL,
review_details VARCHAR(10000) NOT NULL,
artist_id VARCHAR(100) NOT NULL,
PRIMARY KEY ( review_id )
);
有人知道吗?
首先,您应该键入 heroku config
以获取您的 clearDB 凭据。
然后,您可以从您的终端运行这个命令:mysql --host=us-cdbr-east.cleardb.com --user=xxxx --password=xxxx --reconnect heroku_xxxxxx < schema.sql