P&Dアドベントカレンダー16日目の記事です。
2018年もあとは半月ですね。
私個人としては博多駅のクリスマスマーケットへの参加を切望してる次第です泣
はじめに
Rails5アプリのHerokuからAWS EC2への移行の際に少し躓いたことがあったので載せておきます
HerokuではPostgreSQL10を使用してます。
注意事項
PostgreSQL10のDB移行の際には、移行先のPostgrSQLのバージョンも10.0以上にする必要があります。
PostgreSQL10はAmazonLinuxではサポートされていません。
なので、EC2のAMIはAmazonLinux2を選択するようにお願いします。
公式リポジトリの追加
経緯
今回はyumを利用して、installしていきます。
ここで注意しておくことが…
普通にyum install postgresqlとするとPostgreSQL9の最新バージョンがインストールされます。
ということで、PostgreSQLの公式yumリポジトリからinstallする必要があります。
実行したこと
上記より、yum localinstall <URL>を利用して、
PostgreSQLの公式リポジトリをAmazon Linux2に追加が必要となります。
# yum -y localinstall https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-7-x86_64/pgdg-centos10-10-2.noarch.rpm
-yで途中でYes/Noなどを入力する手間を省いて、すべてYesでインストールしていきます。
パッケージの確認
PostgreSQLの公式yumリポジトリで提供されているPostgreSQL10の詳細を確認をしておきましょう。
PostgreSQL10の関連パッケージは、
postgresql10-というプレフィックスで始まるパッケージ名になっていて、
PostgreSQL 10 Serverのパッケージ名はpostgresql10-serverとなっています。
詳細情報の閲覧にはyum info <パッケージ名>を利用しましょう。
# yum info postgresql10-server
これで、Available Packagesと出力されればOKなので、進めていきましょう!
そのほかにも使用できるバージョン等も確認することが可能です。
(やっと)インストール
さてさて、インストールを進めていきましょう。
yum installを利用してインストールしていきます。
# yum -y install postgresql10-server
上記コマンド実行後、Complete!が出力されればOKです!
石橋を叩いて渡りたい方は、postgres –versionを利用して、
コマンド利用の可否とバーションを確認してみましょう。
# /usr/pgsql-10/bin/postgres --version
Ex. version10.6の場合
postgres (PostgreSQL) 10.6と出力されればOKです!
DB初期化
インストールができたらDBの初期化ですね。
postgresql-setup initdbを利用していきましょう。
# /usr/pgsql-10/bin/postgresql-10-setup initdb
Initializing database ... OKを出力されればOKです!
自動起動設定(サービス化)
サーバーの起動・再起動時にPostgreSQLを自動起動するように設定しておきましょう
…してないと結構面倒なことが起こる(未来予知)
systemctl enableでpostgresql-10を指定しましょう。
systemctl enable postgresql-10
起動・停止・再起動
今回はserviceでpostgresql-10を指定して行なっていきます。
起動
さてさて、ついに起動のときです…
# sudo service postgresql-10 start
エラーが吐かれなければ起動完了!!
停止
# sudo service postgresql-10 stop
再起動
# sudo service postgresql-10 restart
ユーザー
PostgreSQLをインストールした時点で
PostgreSQL Severの管理者権限を持つユーザー「postgres」が作成されます。
初期状態ですと、パスワードは設定されていません。
ログイン
起動ができたので「postgres」でログインしてみましょう。
ログインにはpsqlを利用します。
# sudo -u postgres psql -U postgres
could not change directory to "/root"
psql (10.6)
Type "help" for help.
postgres=#
上記のようになれば、成功です!
ログアウトは\qで可能です。
postgres=# \q
ここまでできれば、今回は完璧です!!
お疲れ様でした!!!
最後に
はじめに述べたアプリの移行でおきたことを簡単にまとめてみました。
PostgreSQLを初めて扱ってみて、
バージョン10.0以上とそれより下のもので導入の違いがかなりあったことが結構な驚きでした汗
年明けにはPosgreSQLのユーザー設定やRailsアプリでおいての導入、
そして上記で述べたアプリ移行の全容もお伝えしていく予定なので少々お待ちいただけたらなと思います。
参考記事