Rails x PostgreSQL db:seedç¨sqlãä½ã
移転ãã¾ãã â
"); // ãªãã¤ã¬ã¯ã setTimeout(function redirect(){ location.href = url; } , 5000); // canonical ã®æ¸ãæã var link = document.getElementsByTagName("link")[0]; link.href = url; -->仿¥ããæä½ã常ä½ã«ããã
ãã¼ã¿ãã¼ã¹ã«æåãããã¼ã¿ãå
¥ãã¦ããããå ´åãRailsã§ã¯rake db:seed
ã使ãããã®ã¿ã¹ã¯ã«ããRailsã¢ããªã±ã¼ã·ã§ã³ããã¼ããããç¶æ
ã§db/seeds.rb
ã«æ¸ããã³ã¼ããå®è¡ãããã
ã·ã¼ãç¨ãã¼ã¿ãä½ããã¨èªä½ãéãå ´åï¼ä¾ãã°å¤é¨ã®APIãå¼ã°ãªããã°ãããªãã¨ããããããã®jsonãã¡ã¤ã«ãè§£æããªããã°ãããªãã¨ãï¼ããã¼ã«ã«ã§æµããã¹ã¯ãªãããå度ãããã¯ã·ã§ã³ç°å¢ã§æµãã®ã¯é¦¬é¹¿ãããã®ã§ããã¼ã«ã«ã®ãã¼ã¿ãã¼ã¹ããã³ããããã®ã使ãã®ãè³¢ãã®ã ã¨æãã
ç°å¢ã¯æ¬¡ã®ãã®ãæ³å®ããã
- PostgreSQL
- Heroku
PostgreSQLã§ã¯pg_dump dbname > dump.sql
ãpsql dbname < dump.sql
ãããªã³ãã³ãã使ããããHerokuã®ãããªç°å¢ã§ã¯ãããã®ã³ãã³ããç´æ¥å©ããªããã¨ãå¤ãã
ãã®ããsqlãã¡ã¤ã«ã®ã¤ã³ãã¼ãã¯ActiveRecordçµç±ã§è¡ããã¨ã¨ããã
# db/seeds.rb sql = open(File.join(Rails.root, "db", "seeds.sql")).read ActiveRecord::Base.connection.execute sql
seeds.sqlã¨ãããã³ããã¡ã¤ã«ããªãã¸ããªã«å«ãã¦ããrake db:seed
ã§ãã³ããã¡ã¤ã«ãã¤ã³ãã¼ããããã ãã
ãã¨ã¯ãã®ã³ã¼ããèªãããã³ããã¡ã¤ã«ãæ¸ãåºãã°ããã
pg_dump
pg_dumpã®è©³ãããã¨ã¯è§¦ããªãããåºæ¬çã«ã¯ãã¼ã¿ãã¼ã¹ãæå®ãã¦å®è¡ããã¨ãã³ããã¦ãããã
% pg_dump mydatabase > seeds.sql
ãã®ã³ãã³ãã§ã¯ã¹ãã¼ãã¨ãã¼ã¿èªä½ã両æ¹åºåããããããã®ãã³ããã¡ã¤ã«ã¯ä½¿ããªããçµè«ããè¨ãã¨pg_dumpã³ãã³ãã«ã¯æ¬¡ã®2ã¤ã®ãªãã·ã§ã³ãã¤ããã
% pg_dump mydatabase --data-only --inserts > seeds.sql
--data-only
--data-only
ãªãã·ã§ã³ï¼ã¾ãã¯ã-a
ãªãã·ã§ã³ï¼ã§ãã¼ã¿ã®ã¿ããã³ãã§ãããRailsã§ã¯ãã¼ã¿ãã¼ã¹ã®ã¹ãã¼ãã¯rakeã¿ã¹ã¯ã§ç®¡çããããããã³ããã¡ã¤ã«ã«ã¹ãã¼ãã¯ä¸è¦ã
--inserts
ãã®ãªãã·ã§ã³ã«ããããã³ããã¡ã¤ã«ã®ãã©ã¼ããããINSERTæã使ã£ããã®ã«ã§ãããæå®ããªãå ´åã¯COPYã使ã£ããã®ã«ãªãããActiveRecordããå®è¡ã§ããªãã
微調æ´
ãã¡ã¤ã«ãã©ã¼ãããçã«ã¯ããã¾ã§ã®ä½æ¥ã§åé¡ãªããªã£ãããä½è¨ãªãã¼ã¿ãä¸ç¨®é¡å ¥ã£ã¦ãããããã¯schema_migrationã®ãã¼ã¿ã ã
ãã³ããããã¡ã¤ã«ãè¦ãã¨ãINSERT INTO schema_migrations VALUES ('20140513040222');
ã¨ãã£ãè¡ãããã®ããããããã®æ
å ±ã¯rake db:migrate
ãå®è¡ããã¨ãã«Railsãå
¥ãã¦ããããã¼ã¿ã§ãåããã¼ã¿ãINSERTããã¨ã¨ã©ã¼ã¨ãªã£ã¦ãã¾ãããã®ããããããã®è¡ãåé¤ããå¿
è¦ãããã
seeds.sqlã宿ããã®ã§ããã®ãã¡ã¤ã«ããªãã¸ããªã«addãã¦commitããã
ãã¨ã¯Herokuã«ãããã¤ãã¦ããã¼ã¿ãã¼ã¹å¨ãã®ã¿ã¹ã¯ãå®è¡ããã°ãããã³ãã³ãã§è¨ãã¨æ¬¡ã®ã³ãã³ãã¨ãªãã
git push heroku
heroku run rake db:migrate
heroku run rake db:seed