LoginSignup
1
0

More than 5 years have passed since last update.

SymfonyデモアプリをMySqlを使って動かす

Posted at

本記事は「CentOS7+nginx+PHP-FPM+PHP7でSymfony3の実行環境構築」の記事の続きです。

本記事の目標

前回作った環境で、MySqlをつかってデモアプリを動かせるようにします。

Mysql インストール

こちらを参考にさせていただきました。

  • 読み替えたところ
    • パスワードは変更。後ほどapp/config/parameters.ymldatabase_password項目に設定します。

データベースの準備

php bin/console doctrine:database:createするとsymfonyというデータベースが作成されます。


以下詳細はブログにも書いてあります。

Symfonyのデモアプリのデータベース

デモアプリではSQLiteがデフォルトとして使われているので、MySqlを使うように設定を変更します。

まずはapp/config/parameters.yml。ユーザー名とパスワードは読み替えてください。

# 削除
# database_url: 'sqlite:///%kernel.root_dir%/data/blog.sqlite'
# 追加
database_host:     127.0.0.1
database_port:     null
database_name:     symfony
database_user:     your_user_name
database_password: youre_password

次にapp/config/config.yml

# Doctrine Configuration (used to access databases and manipulate their information)
doctrine:
    dbal:
        # if you don't want to use SQLite, comment the two following lines
        # ここをコメントアウト
        # driver: "pdo_sqlite"
        # path: "%kernel.root_dir%/data/blog.sqlite"
        # uncomment the following lines to use a database different than SQLite
        # ここから下をコメントイン
         driver:   pdo_mysql
         host:     "%database_host%"
         port:     "%database_port%"
         dbname:   "%database_name%"
         user:     "%database_user%"
         password: "%database_password%"
         charset:  UTF8 

ここまで設定したところで、MySqlを使う設定ができました。
自前でデータを用意してるよっていう方は、ブログのページが表示されるはずです。
そうでない人は以下を参考にデータをインポートします。

SQLiteのダンプからMySqlにデータを移植

こちらを参考にさせていただきました。
時間がない人は最終的な形をそのままMySqlで流してください。

まずはSQLiteに登録されているデータを抜いてきます。

$ sqlite3 ./app/data/blog.sqlite 
SQLite version 3.8.5 2014-08-15 22:37:57
Enter ".help" for usage hints.
sqlite> .tables
symfony_demo_comment  symfony_demo_post     symfony_demo_user   
sqlite> .output ./dump.txt
sqlite> .dump
sqlite> .output stdout
sqlite>.exit

MySqlでそのまま使えない箇所を直します。

  • MySqlにCLOB型がないみたいなので、target.sqlのCLOBをTEXTに変更
  • NOT DEFERRABLE INITIALLY IMMEDIATEの指定がMySQLだと効かないみたいなので、この部分を削除して、SET FOREIGN_KEY_CHECKS=0;を追加。

修正したデータを流し込み。
mysql -uroot symfony < target.sql

これで無事動きました。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0