Почему я получаю сообщение об ошибке «Невозможно открыть БД» при работе с Express, Sequelize и Sqlite3? - PullRequest
0 голосов
/ 04 апреля 2020

Я пытаюсь работать с реляционной базой данных (sqlite) в качестве постоянного уровня бэкэнда Express / Apollo. Моя очень базовая c структура проекта выглядит так, как показано на скриншоте.

Я успешно сгенерировал модель, запустил миграцию и даже посеял БД, но по какой-то причине я сталкиваюсь с Unhandled rejection SequelizeConnectionError: SQLITE_CANTOPEN: unable to open database file ошибка при запуске приложения. Что дает?

Ниже приведены фрагменты кода.

Конфигурация приложения

import { ApolloServer } from 'apollo-server-express';
import express from 'express';

import typeDefs from './schemas';
import resolvers from './resolvers';

import models from './models';

const apollo = new ApolloServer({
  typeDefs,
  resolvers,
  async context({ req }) {
    return {
      req,
      models,
    };
  },
  // ...
});

const app = express();

apollo.applyMiddleware({ app });

export default app;

Конфигурация сервера

import http from 'http';

import app from './app';
import db from './models';

const port = 4000;

db.sequelize.sync({ force: true }).then(() => {
  console.log("Re-syncing db");
});

http.createServer(app).listen(port, () => {
  console.log(`Server listening on port ${port}`);
});

Конфигурация Sequelize

{
  "development": {
    "dialect": "sqlite",
    "storage": "./db/devdb.sqlite3"
  },
  "test": {
    "dialect": "sqlite",
    "storage": ":memory"
  },
  "production": {
    "dialect": "sqlite",
    "storage": "./db/proddb.sqlite3"
  }
}

Структура проекта

enter image description here

...