2013-03-07 4 views
3

Я нахожусь на ранних этапах обучения Ruby. У меня действительно нет идеи о том, как использовать существующую базу данных, заполненную таблицами и данными на ruby. Каждый гид, каждая статья, которую я или находил в Интернете, всегда создает новую, используя функции миграции.Использование существующей базы данных SQL Server с Ruby on Rails

Но каковы шаги по использованию существующей базы данных на SQL-сервере на RoR?

ответ

8

Вам повезло, друг. Мой первый проект Rails (7 лет назад) был против ужасно настроенной базы данных SQL Server.

В соответствии с вышеизложенным, вам необходимо настроить ваш database.yml соответствующим образом. Но для существующей базы данных, очевидно, маловероятно, чтобы имена таблиц и столбцов соответствовали соглашениям Rails. Хорошей новостью является то, что вы можете переопределить все эти значения по умолчанию. Вот неполный перечень этих директив:

В модели происходит от AR :: Base,

set_table_name 'actual_table_name'
set_primary_key 'actual_primary_key_name'

На различных директив ассоциации (has_one , has_many, принадлежит_to), есть ключи foreign_key, которые позволяют указать имя внешних ключей.

Теперь одна из вещей, которые MS SQL Server позволяет вам выполнять, что такое TERRIBLE, заключается в том, что вы можете вставлять пробелы в имена столбцов. Не бойтесь, вы все равно можете ссылаться на эти столбцы по имени, используя write_attribute («плохо названный столбец») и read_attribute («плохо названный столбец»). Вы также можете обратиться к ним в различных директив, как так:

validates_length_of «Номер факса»,: максимум => 17,: allow_nil => верно

Наконец, вы можете обратиться к подразумеваемые методами эти дьявольски названные столбцы генерировать так:

self.send ('Fax Number =', new_fax_number)

очевидно, что вы не можете ссылаться на них как символы, так как пробелы запрещены символами Руби.

Удачи, и в следующий раз я надеюсь, что вы приступите к работе с реальной РСУБД, как Informix :).

+0

почему эта ошибка происходя ODBC :: Error: S0002? (208) [Microsoft] [ODBC SQL Server Driver] [SQL Server] Недопустимое имя объекта – chinchu

+0

Я не» Знаете, что вы пытаетесь сделать, когда получите его? –

0

Сначала вам нужно настроить приложение на сервер пользователя sql для подключения к базам данных. вы должны использовать gem для sql server в вашем gemfile и должны установить database.yml файл соответственно.

В database.yml в конфигурации папка поместить имя одной базы данных в части развития этого файла.

development: 
    adapter: 
    database: db_name_dev 
    username: 
    password: 
    host: localhost 
    socket: 
0

Использовать существующий сервер. В вашем database.yml вы должны указать имя хоста, порт и базу данных.

`database: <host>:<port>/<database_name>` 

Для например

development: 
    adapter: mysql2 
    database: your.mysqlserver.com:1521/project_database 
    username: project_user 
    password: project_password 
Смежные вопросы