- 投稿日:2021-01-15T20:28:51+09:00
heroku rake db:migrateが失敗してエラーが出た時の対処
プログラミング初心者で勉強中の身ですが、ググってもなかなか情報が出なかったので報告します。
環境
Mac OS X
Ruby: 2.7.1
Rails: 6.0.3.4
heroku stack: heroku-20(エラーが出た時)
DB: MYSQL起こったこと
https://qiita.com/murakami-mm/items/9587e21fc0ed57c803d0
こちらの記事を参考にherokuへのデプロイを試みたところ、console$ heroku rake db:migrateを実行した時に
consoleMysql2::Error::ConnectionError: SSL connection error: error:1425F102:SSL routines:ssl_choose_client_version:unsupported protocol
とエラーが出た。
原因・対処
原因
自身の環境でこのエラーが起きた原因は二つ
➀heroku stackが heroku-20であった
➁config/database.ymlに必要な記述が無かった対処
➀heroku stackが heroku-20であった
→heroku-18を利用できるようにするconsoleheroku stack:set heroku-18 -a <app name>➁config/database.ymlに必要な記述が無かった
productionに以下のコードを追加config/database.ymlproduction: url: <%= ENV['DATABASE_URL'] %>理由
きちんとした理由は随時募集しています。。誰か教えてください。。
➀heroku stackが heroku-20であった
heroku-20に変わることで出てきた、書くべき必要な処理が書けていなかった?
→これまでのheroku-18にすることでとりあえず解決➁config/database.ymlに必要な記述が無かった
config/database.ymlにはこんな記述があるらしいです(自分は何故か消えていた)
config/database.yml# As with config/credentials.yml, you never want to store sensitive information, # like your database password, in your source code. If your source code is # ever seen by anyone, they now have access to your database. # # Instead, provide the password as a unix environment variable when you boot # the app. Read https://guides.rubyonrails.org/configuring.html#configuring-a-database # for a full rundown on how to provide these environment variables in a # production deployment. # # On Heroku and other platform providers, you may have a full connection URL # available as an environment variable. For example: # # DATABASE_URL="mysql2://myuser:mypass@localhost/somedatabase" # # You can use this database configuration with: # # production: # url: <%= ENV['DATABASE_URL'] %>特に今回は後半の記述が大切で
config/database.yml# On Heroku and other platform providers, you may have a full connection URL # available as an environment variable. For example: # # DATABASE_URL="mysql2://myuser:mypass@localhost/somedatabase" # # You can use this database configuration with: # # production: # url: <%= ENV['DATABASE_URL'] %>雑に和訳すると
「Herokuや他のプラットフォーム上で、あなたは環境変数の形で様々なURLをもらえるでしょう。こんなかんじで:
DATABASE_URL="mysql2://myuser:mypass@localhost/somedatabase"
あなたはこのデータ構成をこのように使えます
production:
url: <%= ENV['DATABASE_URL'] %>」要はこの記述が無かったことで、どこのデータベースを使えばいいか分からずにエラーが出ていた。
まとめ
何かおかしいことが起こり、ググっても分からないときは使っているもののバージョンを確認してみよう!
読んでいただきありがとうございました。
- 投稿日:2021-01-15T20:28:51+09:00
heroku rake db:migrateでエラーが出た時の対処
プログラミング初心者で勉強中の身ですが、ググってもなかなか情報が出なかったので報告します。
環境
Mac OS X
Ruby: 2.7.1
Rails: 6.0.3.4
heroku stack: heroku-20(エラーが出た時)
DB: MYSQL起こったこと
https://qiita.com/murakami-mm/items/9587e21fc0ed57c803d0
こちらの記事を参考にherokuへのデプロイを試みたところ、console$ heroku rake db:migrateを実行した時に
consoleMysql2::Error::ConnectionError: SSL connection error: error:1425F102:SSL routines:ssl_choose_client_version:unsupported protocol
とエラーが出た。
原因・対処
原因
自身の環境でこのエラーが起きた原因は二つ
➀heroku stackが heroku-20であった
➁config/database.ymlに必要な記述が無かった対処
➀heroku stackが heroku-20であった
→heroku-18を利用できるようにするconsoleheroku stack:set heroku-18 -a <app name>➁config/database.ymlに必要な記述が無かった
productionに以下のコードを追加config/database.ymlproduction: url: <%= ENV['DATABASE_URL'] %>理由
きちんとした理由は随時募集しています。。誰か教えてください。。
➀heroku stackが heroku-20であった
heroku-20に変わることで出てきた、書くべき必要な処理が書けていなかった?
→これまでのheroku-18にすることでとりあえず解決➁config/database.ymlに必要な記述が無かった
config/database.ymlにはこんな記述があるらしいです(自分は何故か消えていた)
config/database.yml# As with config/credentials.yml, you never want to store sensitive information, # like your database password, in your source code. If your source code is # ever seen by anyone, they now have access to your database. # # Instead, provide the password as a unix environment variable when you boot # the app. Read https://guides.rubyonrails.org/configuring.html#configuring-a-database # for a full rundown on how to provide these environment variables in a # production deployment. # # On Heroku and other platform providers, you may have a full connection URL # available as an environment variable. For example: # # DATABASE_URL="mysql2://myuser:mypass@localhost/somedatabase" # # You can use this database configuration with: # # production: # url: <%= ENV['DATABASE_URL'] %>特に今回は後半の記述が大切で
config/database.yml# On Heroku and other platform providers, you may have a full connection URL # available as an environment variable. For example: # # DATABASE_URL="mysql2://myuser:mypass@localhost/somedatabase" # # You can use this database configuration with: # # production: # url: <%= ENV['DATABASE_URL'] %>雑に和訳すると
「Herokuや他のプラットフォーム上で、あなたは環境変数の形で様々なURLをもらえるでしょう。こんなかんじで:
DATABASE_URL="mysql2://myuser:mypass@localhost/somedatabase"
あなたはこのデータ構成をこのように使えます
production:
url: <%= ENV['DATABASE_URL'] %>」要はこの記述が無かったことで、どこのデータベースを使えばいいか分からずにエラーが出ていた。
まとめ
何かおかしいことが起こり、ググっても分からないときは使っているもののバージョンを確認してみよう!
読んでいただきありがとうございました。
- 投稿日:2021-01-15T15:33:21+09:00
Cent OS 7にBitnami Redmine Stackを構築してデータベース移行した話
目次
1. 経緯
2. 前提条件
3. インストーラーファイルの取得
4. Bitnami Redmineのインストール
5. 現行データベースのバックアップ
6. リストア
7. 参考文献1. 経緯
Bitnami Redmine Stackが構築されたWindowsサーバから,Linuxサーバへデータベースを移行する機会があったため,手順を備忘録として書かせて頂きました。
BitnamiはWebアプリケーションを,PHP,MySQLなど込み込みで構築してくれる素晴らしいソフトウェアです。大変便利です。
2. 前提条件
①ネットワーク環境に応じた,適切なIPアドレスが設定されていること。
(今回は192.168.10.60を指定。)
②ファイアウォールが無効になっていること。
③SELINUXが無効になっていること。3. インストーラーファイルの取得
1. Bitnamiの公式サイトにアクセスし,【Download for Linux 64-bit】を押下します。
2. 「Download now!」と表示されます。アカウント登録を促されますが,【No thanks, just take me to the download】を押下することで回避可能です。
3. ダウンロードのダイアログが表示されます。【保存】を押下します。
以上で,インストーラーファイルの取得は完了です。
続いて,Bitnami Redmineのインストールへ移ります。4. Bitnami Redmineのインストール
1. 移行先サーバにSSH接続します。今回はTeraTermを使用しました。
2. 構築に必要なソフトウェアをインストールします。# yum install -y glibc-devel perl perl-Data-Dumper3. 先程ダウンロードしたインストーラーファイルを転送します。【ファイル】→【SSH SCP...】の順に押下します。
4. 「TTSSH:Secure File Copy」画面が表示されます。【...】を押下します。
5. ダウンロード先フォルダを開き,【bitnami-4.1.1-7-linux-x64-installer.run】を選択します。
6. 「TTSSH:Secure File Copy」画面に戻ります。【Send】を押下します。
7. インストーラーファイルに実行権限を付与します。# chmod +x ./bitnami-redmine-4.1.1-7-linux-x64-installer.run8. インストーラーファイルを実行します。
# ./bitnami-redmine-linux-x64-installer.run9. インストールウィザードの言語設定を行ないます。
Language Selection Please select the installation language [1] English - English [2] Spanish - Espanol [3] Japanese - 日本語 [4] Korean - ??? [5] Simplified Chinese - ?体中文 [6] Hebrew - ????? [7] German - Deutsch [8] Romanian - Roman? [9] Russian - Русский Please choose an option [1] : ★英語ワカラナイので3の日本語を選択10. インストールするコンポーネントを選択します。何も入力せずEnterを押下すると,大文字の方の選択肢となります。Enterを連打します。
---------------------------------------------------------------------------- ようこそ Bitnami Redmine Stack セットアップウィザードへ。 ---------------------------------------------------------------------------- インストールするコンポーネントを選択してください。インストールしないの選択を 外してください。準備ができたら“次へ“をクリックしてください。 Subversion [Y/n] :★Enterを押下 PhpMyAdmin [Y/n] :★Enterを押下 Redmine : Y (Cannot be edited) Git [Y/n] :★Enterを押下 上記選択部分が正しいことを確認してください。 [Y/n]:★Enterを押下11. インストール先フォルダの選択をします。今回は変更しませんでしたが,「/opt/redmine」とすると便利かもしれません。
---------------------------------------------------------------------------- Installation folder Bitnami Redmine Stack をインストールするフォルダを選択してください。 フォルダを選択 [/opt/redmine-4.1.1-7]:★Enterを押下12. 管理者アカウントの作成をします。変更したい場合は,適宜入力をします。
---------------------------------------------------------------------------- 管理者アカウントの作成 Bitnami Redmine Stack の管理者アカウントを作成します。 表示用氏名 [User Name]: ★Enterを押下 Email アドレス [user@example.com]:★Enterを押下 ログイン名 [user]: ★Enterを押下 パスワード :★任意のパスワード 確認のためにパスワードをもう一度入れてください :★任意のパスワード13. データベースに保管する際の規定の言語を選択します。
---------------------------------------------------------------------------- データベースに保管する際の既定の言語 データベース設定の規定値として使用する言語を選択してください: [1] Bosnian [2] Bulgarian [3] Catalan [4] Czech [5] Danish [6] German [7] English [8] Spanish [9] French [10] Galician [11] Hebrew [12] Hungarian [13] Italian [14] 日本語 [15] 韓国語 [16] Lithuanian [17] Dutch [18] Norwegian [19] Polish [20] Portuguese [21] Romanian [22] Russian [23] Slovak [24] Slovenian [25] Serbian [26] Swedish [27] Turkish [28] Ukrainian [29] Vietnamese [30] Chinese オプションを選択してください [14] : ★Enterを押下 Do you want to configure mail support? [y/N]: ★Enterを押下14. インストールを開始させます。
お使いのコンピュータに Bitnami Redmine Stack をインストールする準備が整いました。 続けますか? [Y/n]:★Enterを押下15. 100%になるまで待機後,Redmineを起動させます。
---------------------------------------------------------------------------- しばらくお待ちください。 Bitnami Redmine Stack をお使いのコンピュータにインストール中です。 インストール中 0% ______________ 50% ______________ 100% ################################ ---------------------------------------------------------------------------- セットアップウィザードによる Bitnami Redmine Stack のインストールが完了しました。 Redmine アプリケーション起動 [Y/n]: ★Enterを押下 情報: Bitnami Redmine Stack については、ブラウザで http://127.0.0.1:80 にアクセスしてください。 続けるには [Enter] キーを押してください :★Enterを押下以上でBitnami Redmineのインストールは完了です。
続いて,現行データベースのバックアップへ移ります。5. 現行データベースのバックアップ
1. 移行元のWindowsサーバへ接続します。エクスプローラを起動させ,以下のフォルダへアクセスします。
(インストール先を変更している場合は異なります。)C:\\Bitnami\redmine-***\apps\redmine\htdocs\config\ (***はredmineのバーションが入ります。)2. 【database.yml】ファイルをテキストエディタで開き,以下の記述内容を控えておきます。
(MySQLでデータベースのバックアップファイルを作成する際に使用します。)production: adapter:mysql2 database:bitnami_redmine ★ host:127.0.0.1 username:bitnami ★ password:*** ★ # Use "utf8" instead of "utfmb4" for MySQL prior to 5.7.7 encoding:utf8mb4 port:3306 (★で示した箇所を控える)3. 【スタートボタン】→【Bitnami Redmine Stack】を押下し,【Bitnami Redmine Stackを使用する】を起動します。
4. コマンドプロンプトが表示されます。現行データベースのバックアップファイルを作成します。
※★部分は先程控えた内容を入力。
※「-p」の後にスペースを入れないよう注意!C:\Bitnami\redmine-***> mysqldump -u [★username] -p[★password] [★database] > bitnami_redmine_backup5. 以下のフォルダにアクセスすると,「bitnami_redmine_backup」という名前でバックアップファイルが配置されています。ローカル端末へコピペして転送しておきます。
6. リストア
1. 再度移行先サーバへSSH接続し,先程取得しておいたバックアップファイルを転送します。【ファイル】→【SSH SCP...】の順に押下します。
2. 「TTSSH:Secure File Copy」画面が表示されます。【...】を押下します。
3. 【bitnami_redmine_backup】を選択します。
4. 「TTSSH:Secure File Copy」画面に戻ります。【Send】を押下します。
5. 「use_redmine」というコマンドを実行します。Windowsでいう「Bitnami Redmine Stackを使用する」はこのコマンドになるようです。# /opt/redmine-4.1.1-7/use_redmine7. バックアップファイルを指定して,データベースを上書きします。実行ユーザーはrootにしました。
# mysql -u root -p*** bitnami_redmine < bitnami_redmine_backup (***はrootユーザのパスワード)以上で,リストア完了です。
7. 参考文献
ⅰ)bitnami CentOS Redmine - カロンの渡し船
ⅱ)bitnamiでCentOS7にRedmineをインストールしてみた
ⅲ)データのバックアップ方法