Я настроил свой database.yml, чтобы указать на мою существующую базу данных mysql
как я могу генерировать модели из него?
rails generate model existing_table_name
дает только модель emty.
Я настроил свой database.yml, чтобы указать на мою существующую базу данных mysql
как я могу генерировать модели из него?
rails generate model existing_table_name
дает только модель emty.
Модель Rails не отображает ваши поля, но вы все равно можете их использовать. Попробуйте следующее. Предполагая, что у вас есть модель с именем ModelName и поле под названием "name", запустите консоль Rails и введите:
ModelName.find_by_name('foo')
Учитывая имя, существующее в БД, вы должны увидеть результаты.
Rails не устанавливает отношения, но если ваша база данных соответствует соглашениям Rails, они легко добавляются.
Обновление
Я заметил, что это отсутствие ясности ( "магия" ) является источником путаницы для новичков в Rails. Вы всегда можете посмотреть в schema.rb
, чтобы увидеть модели и все поля в одном месте. Кроме того, если вы предпочитаете видеть схему для каждой модели в файле модели, вы можете использовать драгоценный камень annotate_models, который будет db в комментарии в верхней части файла модели.
Вы можете попробовать Rmre. Он может создавать модели для существующей схемы и пытается создать все отношения, основанные на информации о внешних ключах.
Ваш ответ:
$ rake db:schema:dump
Это создаст новую db/schema.db
, чтобы создать схему вашей БД.
ActiveRecord не анализирует определение схемы. Он запрашивает DBM для таблицы defs и вычисляет поля "на лету".
Наличие схемы полезно, если вы собираетесь изменять таблицы посредством миграции.
Schema Dumping and You
поможет вам сбрасывать его для использования в качестве ссылки для создания миграции.
ActiveRecord делает некоторые предположения о наименовании таблицы и ожидает, что поле id
будет основным ключом с последовательным номером в качестве типа. Наличие миграции поможет вам реорганизовать таблицы и/или имена и типы полей, но вы можете сделать то же самое через свою командную строку DBM. Вам не обязательно следовать стилю ActiveRecord, но это помогает избежать нечетных ошибок и позволяет AR делать выводы, чтобы сделать вашу жизнь проще.
Можно попробовать Генератор магической модели
Взгляните на жемчужину редких камней. https://github.com/wnameless/rare_map Он работает как на рейсах 3, так и на 4.