0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

sequelize model:create時のエラーを解決するまでに実行したこと

Last updated at Posted at 2020-03-01

##実行コマンド

console
sequelize model:create --name goal --underscored --attributes goalname:string

sequelizeでgoalというモデルを作成しようとしている。

###エラー内容

console
Unable to resolve sequelize package in

意味
sequelizeがうまく開かないみたいだけど

#問題点がありそうなところを考える
以下の1番目から順番に思いついたため、順番に対処しました。
結果的に3番目の「実行ディレクトリの誤り」だっただけですが、そこに辿り着くまでに手順をまとめておこうと思います。

####1. confing.jsonの表記ミス
####2. sequelizeのインストールができていない
####3. 実行ディレクトリの誤り

##1. confing.jsonの表記ミスの可能性
vimなどのエディタでnode/config/config.jsonを確認。

terminal
vim node/config/config.json
node/config/config.json
1 {
  2   "development": {
  3     "username": "root",
  4     "password": null,
  5     "database": "database_development",
  6     "host": "127.0.0.1",
  7     "dialect": "sqlite",
  8     "storage": "./data/development.sqlite3",
  9     "operatorsAliases": false
 10   },
 11   "test": {
 12     "username": "root",
 13     "password": null,
 14     "database": "database_test",
 15     "host": "127.0.0.1",
 16     "dialect": "sqlite",
 17     "storage": "./data/test.sqlite3",
 18     "operatorsAliases": false
 19   },
 20   "production": {
 21     "username": "root",
 22     "password": null,
 23     "database": "database_production",
 24     "host": "127.0.0.1",
 25     "dialect": "sqlite",
 26     "storage": "./data/production.sqlite3",
 27     "operatorsAliases": false
 28   }

確認したが問題が確認できなかった。

##2. sequelizeのインストールができていない
この時点で自分はパニック
何をして良いかわからないが、もしかしてインストールがうまくいってなかったのではと思い、コンテナにログインし、sequelize --versionをおこうが、command not foundと怒られてしまったため、とりあえず再インストールを行うことにした。

早速コンテナにログインし実行してみる

docker exec -it serverapp /bin/bash
root
npm install --save sequelize
スクリーンショット 2020-03-02 06.54.18.png ENOENTとはError NO ENTry のこと。ようはファイルみつかんねぇーよってこと。 すでにpackage.jsonがディレクトリにあるため、エラーが出たと自己解釈(この解釈は間違ってるかもしれませんが・・・)。

インストールの確認

root
sequelize --version
スクリーンショット 2020-03-02 06.59.55.png しっかりインストールが完了したため、マイグレーションを行うと以下のエラーが出た。

####実行コマンド

console
sequelize db:migrate

###エラー内容

console
ERROR: Please install mysql2 package manually

意味
Mysql2を手動でインストールして

解決
まずSQliteを使用するのにMySQLをインストールしてなのか疑問だったが、とりあえずMysql2をインストールしてみることにした。

##実行コマンド

console
sequelize db:migrate

###エラー内容

console
connect ECONNREFUSED 127.0.0.1:3306

意味
Mysql2を手動でインストールして

設定ファイルがsqliteになっているのにmysqlが必要なのが意味不明すぎて混乱した。

##3. 実行ディレクトリの誤り
最終的にはこれが原因でした。

root/nodeで実行しないといけないものをroot直下で実行していました。

正しくは

root/node/
sequelize model:create --name goal --underscored --attributes goalname:string

これで実行し無事マイグレートを行えました。

#まとめ
今回のエラーでMysqlやsqliteについて知るきっかけになった良かったと思いますが、結構時間がかかってしまったので、今後はディレクトリ構造も注意してみたいと思います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?