rsnext/examples/with-mysql/scripts/migrate-db.js
unimprobable f9de10f64d
added port config var to migrate-db.js and .env (#22395)
Added port config variable to the migrate-db.js script and .env.local.example files. This allows users to set the port for remote databases like Digital Ocean that don't use the default port.
2021-02-22 13:32:23 +00:00

53 lines
1.2 KiB
JavaScript

const path = require('path')
const envPath = path.resolve(process.cwd(), '.env.local')
console.log({ envPath })
require('dotenv').config({ path: envPath })
const mysql = require('serverless-mysql')
const db = mysql({
config: {
host: process.env.MYSQL_HOST,
database: process.env.MYSQL_DATABASE,
user: process.env.MYSQL_USERNAME,
password: process.env.MYSQL_PASSWORD,
port: process.env.MYSQL_PORT,
},
})
async function query(q) {
try {
const results = await db.query(q)
await db.end()
return results
} catch (e) {
throw Error(e.message)
}
}
// Create "entries" table if doesn't exist
async function migrate() {
try {
await query(`
CREATE TABLE IF NOT EXISTS entries (
id INT AUTO_INCREMENT PRIMARY KEY,
title TEXT NOT NULL,
content TEXT NOT NULL,
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at
TIMESTAMP
NOT NULL
DEFAULT CURRENT_TIMESTAMP
ON UPDATE CURRENT_TIMESTAMP
)
`)
console.log('migration ran successfully')
} catch (e) {
console.error('could not run migration, double check your credentials.')
process.exit(1)
}
}
migrate().then(() => process.exit())