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
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。