fix: database location
Founded a major mistake: db overwrites during install. Now all scripts save db in special folder and don't overwrite it.
This commit is contained in:
@@ -146,6 +146,7 @@ rsync -av --exclude='node_modules' \
|
||||
--exclude='.env.test' \
|
||||
--exclude='.env.test.local' \
|
||||
--exclude='*.md' \
|
||||
--exclude='db/' \
|
||||
"$PROJECT_DIR/" "$INSTALL_DIR/"
|
||||
|
||||
# Handle .env file
|
||||
@@ -162,6 +163,16 @@ else
|
||||
fi
|
||||
fi
|
||||
|
||||
# Создаем папку db для базы данных, если её нет
|
||||
if [ ! -d "$INSTALL_DIR/db" ]; then
|
||||
echo -e "${YELLOW}Creating db directory for database...${NC}"
|
||||
mkdir -p "$INSTALL_DIR/db"
|
||||
chmod 755 "$INSTALL_DIR/db"
|
||||
echo -e "${GREEN}Database directory created at $INSTALL_DIR/db${NC}"
|
||||
elif [ -d "$INSTALL_DIR/db" ]; then
|
||||
echo -e "${GREEN}Database directory already exists, preserving existing database${NC}"
|
||||
fi
|
||||
|
||||
# Install dependencies (with check)
|
||||
echo -e "${YELLOW}Checking dependencies...${NC}"
|
||||
cd "$INSTALL_DIR"
|
||||
|
||||
@@ -103,6 +103,7 @@ case "$1" in
|
||||
--exclude='.env.test.local' \
|
||||
--exclude='*.md' \
|
||||
--exclude='.dependencies.hash' \
|
||||
--exclude='db/' \
|
||||
"$PROJECT_DIR/" "$INSTALL_DIR/"
|
||||
|
||||
# Handle .env file (preserve existing if present)
|
||||
@@ -113,6 +114,15 @@ case "$1" in
|
||||
cp "$PROJECT_DIR/.env" "$INSTALL_DIR/.env"
|
||||
fi
|
||||
|
||||
# Убеждаемся, что папка db существует и не перезаписывается
|
||||
if [ ! -d "$INSTALL_DIR/db" ]; then
|
||||
echo -e "${YELLOW}Creating db directory for database...${NC}"
|
||||
mkdir -p "$INSTALL_DIR/db"
|
||||
chmod 755 "$INSTALL_DIR/db"
|
||||
else
|
||||
echo -e "${GREEN}Database directory exists, preserving existing database${NC}"
|
||||
fi
|
||||
|
||||
# Change to installation directory for build
|
||||
cd "$INSTALL_DIR"
|
||||
|
||||
|
||||
@@ -17,11 +17,26 @@ const readline = require('readline');
|
||||
|
||||
// Определяем путь к базе данных
|
||||
function findDatabase() {
|
||||
// Определяем корень проекта (для standalone режима поднимаемся на 2 уровня вверх)
|
||||
let projectRoot = process.cwd();
|
||||
if (projectRoot.includes('.next/standalone')) {
|
||||
const match = projectRoot.match(/^(.+?)\/\.next\/standalone/);
|
||||
if (match && match[1]) {
|
||||
projectRoot = match[1];
|
||||
} else {
|
||||
projectRoot = path.resolve(projectRoot, '..', '..');
|
||||
}
|
||||
}
|
||||
|
||||
const possiblePaths = [
|
||||
path.join(process.cwd(), 'data', 'schedule-app.db'),
|
||||
path.join(process.cwd(), '.next', 'standalone', 'data', 'schedule-app.db'),
|
||||
path.join(projectRoot, 'db', 'schedule-app.db'),
|
||||
'/opt/kspguti-schedule/db/schedule-app.db',
|
||||
path.join(process.cwd(), 'db', 'schedule-app.db'),
|
||||
path.join(process.cwd(), '.next', 'standalone', 'db', 'schedule-app.db'),
|
||||
'/opt/kspguti-schedule/.next/standalone/db/schedule-app.db',
|
||||
// Старые пути для обратной совместимости
|
||||
path.join(projectRoot, 'data', 'schedule-app.db'),
|
||||
'/opt/kspguti-schedule/data/schedule-app.db',
|
||||
'/opt/kspguti-schedule/.next/standalone/data/schedule-app.db',
|
||||
];
|
||||
|
||||
for (const dbPath of possiblePaths) {
|
||||
@@ -56,10 +71,22 @@ async function main() {
|
||||
if (!dbPath) {
|
||||
console.error('❌ Ошибка: База данных не найдена!');
|
||||
console.log('\nИскали в следующих местах:');
|
||||
console.log(' - ' + path.join(process.cwd(), 'data', 'schedule-app.db'));
|
||||
console.log(' - ' + path.join(process.cwd(), '.next', 'standalone', 'data', 'schedule-app.db'));
|
||||
console.log(' - /opt/kspguti-schedule/data/schedule-app.db');
|
||||
console.log(' - /opt/kspguti-schedule/.next/standalone/data/schedule-app.db');
|
||||
|
||||
// Определяем корень проекта для отображения
|
||||
let projectRoot = process.cwd();
|
||||
if (projectRoot.includes('.next/standalone')) {
|
||||
const match = projectRoot.match(/^(.+?)\/\.next\/standalone/);
|
||||
if (match && match[1]) {
|
||||
projectRoot = match[1];
|
||||
} else {
|
||||
projectRoot = path.resolve(projectRoot, '..', '..');
|
||||
}
|
||||
}
|
||||
|
||||
console.log(' - ' + path.join(projectRoot, 'db', 'schedule-app.db'));
|
||||
console.log(' - /opt/kspguti-schedule/db/schedule-app.db');
|
||||
console.log(' - ' + path.join(process.cwd(), 'db', 'schedule-app.db'));
|
||||
console.log('\n💡 Подсказка: База данных должна находиться в папке db/ в корне проекта');
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user