🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

Express

ExpressはNode.jsのWebアプリケーションフレームワークです。 マルチページを構築するための機能セットおよびハイブリッドのWebアプリケーションを提供します。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Q&A

解決済

1回答

3348閲覧

docker・Express・MySQLを使った開発にsequelizeでテーブルをmigrateしたい

yusuke.y

総合スコア17

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

Express

ExpressはNode.jsのWebアプリケーションフレームワークです。 マルチページを構築するための機能セットおよびハイブリッドのWebアプリケーションを提供します。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

0グッド

0クリップ

投稿2021/03/17 03:07

Docker・Express・MySQLを用いた開発を勉強中です。
sequelizeを用いてMySQLのデータベースに新規でテーブル作成をしたいです。
参考にしたサイト1
参考にしたサイト2

参考にしたサイトのどちらでもターミナルでマイグレーションを実行する際に下記のエラーが出て新規テーブルが作成できません。
my_mysql_dbというデータベースにTestテーブルを作成するのが目標です。

terminal

1Loaded configuration file "config/config.json". 2Using environment "development". 3 4ERROR: getaddrinfo ENOTFOUND my_mysql

ディレクトリ構造、docker及びExpress関連のコードは以下の通りです。
MySQLのrootユーザーのパスワードはrootです。

ディレクトリ構造

docker-compose.yml

yml

1version: '3.4' 2 3services: 4 my_mysql: 5 image: mysql 6 environment: 7 MYSQL_ROOT_PASSWORD: root 8 MYSQL_DATABASE: my_mysql_db 9 ports: 10 - '3306:3306' 11 volumes: 12 - my_volume:/var/lib/mysql 13 14 dockerexpress: 15 image: dockerexpress 16 build: 17 context: dockerExpress 18 dockerfile: ./Dockerfile 19 ports: 20 - 3000:3000 21 depends_on: 22 - my_mysql 23 env_file: ./.env 24 25volumes: 26 my_volume: 27

config.json

json

1{ 2 "development": { 3 "username": "root", 4 "password": "root", 5 "database": "my_mysql_db", 6 "host": "my_mysql", 7 "dialect": "mysql" 8 }, 9 "test": { 10 "username": "root", 11 "password": "root", 12 "database": "my_mysql_db", 13 "host": "my_mysql", 14 "dialect": "mysql" 15 }, 16 "production": { 17 "username": "root", 18 "password": "root", 19 "database": "my_mysql_db", 20 "host": "my_mysql", 21 "dialect": "mysql" 22 } 23} 24

202010314161654-Test.js

js

1'use strict'; 2 3module.exports = { 4 up: async (queryInterface, Sequelize) => { 5 return queryInterface.createTable('Test', { 6 id: { 7 allowNull: false, 8 autoIncrement: true, 9 primaryKey: true, 10 type: Sequelize.INTEGER 11 }, 12 name: { 13 type: Sequelize.STRING 14 }, 15 email: { 16 type: Sequelize.STRING 17 }, 18 password: { 19 type: Sequelize.STRING 20 }, 21 createdAt: { 22 allowNull: false, 23 type: Sequelize.DATE 24 }, 25 updatedAt: { 26 allowNull: false, 27 type: Sequelize.DATE 28 } 29 }); 30 }, 31 32 down: async (queryInterface, Sequelize) => { 33 return queryInterface.dropTable('Test'); 34 } 35}; 36

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

ターミナルで実行するコマンドがymlファイルのアプリケーション名を使うもののようでした。
今回ymlファイルでアプリケーション名を[dockerexpress]としていたため、マイグレーションを行う際に扱うコマンドは下記の通りでした。

terminal

1docker-compose run --rm dockerexpress npx sequelize-cli db:migrate

投稿2021/03/17 03:29

yusuke.y

総合スコア17

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問