Таблица 'project_dev.users' не существует - PullRequest
0 голосов
/ 02 ноября 2010

Я только что создал новую таблицу, используя миграцию Rails, затем я создал модель, в которую я добавил ее отношения.

Я перезапустил свою консоль, и консоль MySQL показывает таблицу в базе данных project_dev.

Когда я пытаюсь создать новую запись в моей консоли Ruby, я получаю:

Mysql::Error: Table 'project_dev.trace_users' doesn't exist from C:/Sanj/Ruby192/lib/ruby/gems/1.9.1/gems/activerecord-3.0.1/lib/act ive_record/connection_adapters/mysql_adapter.rb:287:in 'query' from C:/Sanj/Ruby192/lib/ruby/gems/1.9.1/gems/activerecord-3.0.1/lib/act ive_record/connection_adapters/mysql_adapter.rb:287:in 'execute' from C:/Sanj/Ruby192/lib/ruby/gems/1.9.1/gems/activerecord-3.0.1/lib/act ive_record/connection_adapters/mysql_adapter.rb:438:in 'columns' from C:/Sanj/Ruby192/lib/ruby/gems/1.9.1/gems/activerecord-3.0.1/lib/act ive_record/base.rb:679:in 'columns' from C:/Sanj/Ruby192/lib/ruby/gems/1.9.1/gems/activerecord-3.0.1/lib/act ive_record/persistence.rb:285:in 'attributes_from_column_definition' from C:/Sanj/Ruby192/lib/ruby/gems/1.9.1/gems/activerecord-3.0.1/lib/act ive_record/locking/optimistic.rb:62:in 'attributes_from_column_definition' from C:/Sanj/Ruby192/lib/ruby/gems/1.9.1/gems/activerecord-3.0.1/lib/act ive_record/base.rb:1396:in 'initialize' from (irb):2:in 'new' from (irb):2 from C:/Sanj/Ruby192/lib/ruby/gems/1.9.1/gems/railties-3.0.1/lib/rails/c ommands/console.rb:44:in 'start' from C:/Sanj/Ruby192/lib/ruby/gems/1.9.1/gems/railties-3.0.1/lib/rails/c ommands/console.rb:8:in 'start' from C:/Sanj/Ruby192/lib/ruby/gems/1.9.1/gems/railties-3.0.1/lib/rails/c ommands.rb:23:in '<top (required)>' from script/rails:6:in 'require' from script/rails:6:in '<main>'

Ответы [ 2 ]

2 голосов
/ 02 ноября 2010

Кажется, вчера я был немного более некомпетентен, чем я хотел бы признать - таблицы миграции были созданы в единственном, а не во множественном числе - это привело к таблице trace_user вместо trace_users.

@ Бен - я назвал таблицу так, потому что у меня в системе есть несколько таблиц трассировки, записывающих различные виды событий, и я предпочел объединить все таблицы трассировки - ИМХО, это помогает упростить понимание таблиц при попытке понять систему в целом.

1 голос
/ 02 ноября 2010

У вас была модель User, а затем добавлена ​​модель Trace, верно? Вы все сделали правильно, за исключением того, что, поскольку вы добавили пользователей has_many в Trace, теперь вам нужно создать таблицу ассоциации (с помощью другой миграции). Подумайте о правильном направлении связи (user has_many traces?), Чтобы таблица была user_traces, что для меня звучит лучше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...