【heroku】Node.jsからSendGrid経由でメールを発信したい【別問題発生】

研究
OLYMPUS DIGITAL CAMERA
この記事は約3分で読めます。

この記事は1年前の記事です。当時の情報、理解に基づいておりますのでご留意ください

はじめに

Test site.

ここまでの話

  1. SendGridを使おうと思ったけれどGmailで済むなら良くないか
  2. 果たしてDockerからはGMailで飛んだ
  3. Dockerからherokuに載せようとしたら→テーブルのカラムが見つからないと言われる
  4. Sequelizeでのmigrationがなんかうまくいってない可能性があった
  5. git push heroku master で更新した筈の内容が heroku run bash で反映されない
  6. 何故?

という具合で一晩無駄にした昨日。
なんとか解決を見た本日、改めて投稿。

git push heroku master で更新した筈の内容が heroku run bash で反映されない

heroku run bashでターミナルを開いた場合は、その時点でのファイル情報しか参照できない。
頻繁に git push heroku master を行う場合は
heroku run sequelize-cli db:migrate を使う。

ただ、migrateを実行してもカラムが追加されない…

sequelizeでテーブルに変更を加える手順メモ - Qiita
version Sequelize CLI テーブルに変更を加える 手順 migrationファイルの作成 加えたい変更に合ったファイル...

例によってあまり深読みしないでハマってるクチ。今回は
heroku run sequelize-cli db:migrate:undo:all で削除して
heroku run sequelize-cli db:migrate を走らせ定義を変更する方法を取りました。

そしたら今度はテーブル名がUserなのにuserで検索しに行ったり、
カラム名が createdAt なのに created_at で探しに行ったりする。
以下の定義を記述してやると幸せなんですが、

freezeTableName: true,
underscored: false

src/config/config.js の環境ごとの接続設定のdefineに記述するようです。

module.exports = {
  development: {
    database: "todo",
    username: "root",
    password: "password",
    host: "mysql",
    port: "3306",
    dialect: 'mysql',
    define: {
      underscored: true
    },
  },

さて本懐。アカウント登録→メール発信を対応しようかね…
GMailのログインで叱られた。SendGridを素直に使おう。
…API使おうとしたら401で叱られた。
SMTPで対応して、ダッシュボードで飛んだのを確認。

ん?sequelizeでauto incrementがうまく行ってない?
もしかしてDBサーバはMariaDBなのがいけないか?もう少し調べる。

タイトルとURLをコピーしました