完善serverless部署环境
This commit is contained in:
@@ -4,8 +4,15 @@
|
||||
*/
|
||||
require('dotenv').config();
|
||||
const db = require('./db');
|
||||
const path = require('path');
|
||||
const fs = require('fs');
|
||||
|
||||
const IS_SERVERLESS = [
|
||||
process.env.SERVERLESS,
|
||||
process.env.VERCEL,
|
||||
process.env.AWS_LAMBDA_FUNCTION_NAME,
|
||||
process.env.NETLIFY,
|
||||
process.env.FUNCTION_TARGET,
|
||||
process.env.K_SERVICE
|
||||
].some(Boolean);
|
||||
|
||||
const SCHEMA = {
|
||||
users: {
|
||||
@@ -210,8 +217,14 @@ async function ensureTable(tableName, tableSchema) {
|
||||
}
|
||||
|
||||
async function checkAndFixDatabase() {
|
||||
const envPath = path.join(__dirname, '..', '.env');
|
||||
if (!fs.existsSync(envPath)) return;
|
||||
const autoSchemaSync = process.env.DB_AUTO_SCHEMA_SYNC
|
||||
? process.env.DB_AUTO_SCHEMA_SYNC === 'true'
|
||||
: !IS_SERVERLESS;
|
||||
const hasDbConfig = Boolean(process.env.MYSQL_HOST && process.env.MYSQL_USER && process.env.MYSQL_DATABASE);
|
||||
|
||||
if (!hasDbConfig || !autoSchemaSync) {
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
for (const [tableName, tableSchema] of Object.entries(SCHEMA)) {
|
||||
|
||||
Reference in New Issue
Block a user