Как исправить ошибку: SQLITE_CANTOPEN: невозможно открыть базу данных на Zeit.co? - PullRequest
1 голос
/ 13 февраля 2020

Я хочу подключиться к моей базе данных sqlite3. Это нормально работает на локальном хосте и завершается неудачно, когда я развернул в zeit.co с ОШИБКОЙ:

Error: SQLITE_CANTOPEN: unable to open database

Как я понимаю, эта проблема заключается в том, что мы не можем получить правильный путь к файлу базы данных. Я пробовал некоторые решения, но все равно не получилось. Пожалуйста, помогите !!!

Вот ошибка в журнале zeit.co:

2020-02-13T07: 50: 40.031Z 4d5a9aed-ae26-4a09-903a-72aa08ca5140 ОШИБКА необработанная Отклонение обещания {"errorType": "Runtime.UnhandledPromiseRejection", "errorMessage": "Ошибка: SQLITE_CANTOPEN: невозможно открыть файл базы данных", "причина": {"errorType": "Ошибка", "errorMessage": "SQLITE_CANTOPEN: невозможно открыть файл базы данных "," code ":" SQLITE_CANTOPEN "," errno ": 14," stack ": [" Ошибка: SQLITE_CANTOPEN: невозможно открыть файл базы данных "]}," обещание ": {" isFulfilled ": false, "isRejected": true, "rejectionReason": {"errorType": "Error", "errorMessage": "SQLITE_CANTOPEN: невозможно открыть файл базы данных", "code": "SQLITE_CANTOPEN", "errno": 14, "stack" : ["Ошибка: SQLITE_CANTOPEN: невозможно открыть файл базы данных"]}}, "стек": ["Runtime.UnhandledPromiseRejection: Ошибка: SQLITE_CANTOPEN: невозможно открыть файл базы данных", "в процессе. (/ Var / runtime / index. js: 35: 15) "," at process.emit (events. js: 228: 7) "," at eventToObjectGenerator.promiseCreated (/ var / task / node_modules / bluebir d / js / release / debuggability. js: 258: 33) "," в activeFireEvent (/var/task/node_modules/bluebird/js/release/debuggability.js:301:44) "," в fireRejectionEvent (/var/task/node_modules/bluebird/js/release/debuggability.js:703:14) "," в Promise._notifyUnhandledRejection (/var/task/node_modules/bluebird/js/release/debuggability.js : 90: 9) "," в Timeout.unhandledRejectionCheck [as _onTimeout] (/var/task/node_modules/bluebird/js/release/debuggability.js:39:25) "," в listOnTimeout (внутренние / таймеры). js: 531: 17) "," at processTimers (internal / timers. js: 475: 7) "]} Произошла неизвестная ошибка приложения

Вот код, к которому я подключаюсь sqlite

const fs = require('fs');
const path = require('path');

const DBSOURCE = path.join(__dirname, 'mydb.sqlite');

const knex = require('knex')({
    client: 'sqlite3',
    connection: {
        filename: DBSOURCE
    }
});

Примечание:

  1. Я пытался const DBSOURCE = 'mydb.sqlite';
  2. Я пытался const DBSOURCE = path.resolve(__dirname, 'mydb.sqlite');
...