2009-11-17 2 views
0

Просто работая через Agile Web Development с Rails-книгой и рядом с заключительными разделами книги, мне пришлось несколько раз откатывать db с помощью db: migrate VERSION = 0, за которым следует команда db: migrate. Однако при возврате базы данных с нуля миграция add_test_data не добавляет записи теста в db, как это было ранее сделано ранее. Есть идеи? Im получая следующее в журнале развитияRails add_test_data migration

Migrating to AddTestData (20091111225948) [4;36;1mSQL (0.0ms)[0m [0;1mselect sqlite_version(*)[0m

[4;35;1mProduct Load (1.0ms)[0m [0m SELECT "products".id FROM "products" WHERE ("products"."title" = 'Pragmatic Project Automation') LIMIT 1[0m

[4;36;1mProduct Load (0.0ms)[0m [0;1mSELECT "products".id FROM "products" WHERE ("products"."title" = 'Pragmatic Version Control') LIMIT 1[0m

[4;35;1mProduct Load (1.0ms)[0m [0mSELECT "products".id FROM "products" WHERE ("products"."title" = 'Pragmatic Unit Testing (C#)') LIMIT 1[0m

[4;36;1mSQL (1.0ms)[0m [0;1mINSERT INTO schema_migrations (version) VALUES ('20091111225948')[0m

Децибелл является SQLite3, Ruby 1.8.6, Rails 2.3. 4 и im, развивающиеся в Windows (cringe)

ответ

0

Поскольку вы используете 2.3.4, я бы использовал db:seed, чтобы добавить данные о семени.

В дополнение к этому я бы попробовал переименовать вашу базу данных sqlite и запустить rake db: снова перейти на пустую базу данных. Возможно, вам придется создать новый пустой development.sqlite3.

Если ни одна из этих работ для вас не переносит содержание миграции, это поможет.

+0

Hi Andy, Приветствия за советы, я передал код из миграции в seeds.rb. Оказывается, что код терпел неудачу, потому что я создавал записи, используя create, а не для создания! (что делает парень Railscasts). Согласно следу, у меня была опечатка в каком-то правильном коде, который я написал ранее. Задача решена! ах, прекрасный мир приложений для покупок: / – gcahill