Использование Rails 2.x с MS SQL Server 2005

Есть ли у кого-нибудь здесь положительный опыт работы с MS SQL Server 2005 из Rails 2.x?

Наши разработчики используют Mac OS X, а наше производство работает на Linux. По устаревшим причинам мы должны использовать MS SQL Server 2005.

Мы используем ruby-odbc и сталкиваемся с различными проблемами, слишком удручающими, чтобы перечислять их здесь. У меня складывается впечатление, что мы делаем что-то не так.

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

Спасибо,


person squadette    schedule 15.09.2008    source источник


Ответы (4)


Рассматривали ли вы возможность использования JRuby? У Microsoft есть драйвер JDBC для SQL Server, который можно запускать в UNIX. варианты (это чистая Java AFAIK). Сегодня мне удалось получить предварительную версию технологии 2.0, работающую с JRuby и Rails 2.1. Я еще не пробовал миграцию, но пока драйвер работает достаточно хорошо.

Вот грубый набросок того, как заставить его работать:

  1. Убедитесь, что Java 6 установлена
  2. Установите JRuby, следуя инструкциям на веб-сайте JRuby.
  3. Установите Rails с помощью gem (jruby -S gem install rails)
  4. Загрузите пакет UNIX драйвера Microsoft SQL Server JDBC (версия 2.0)
  5. Распакуйте драйвер Microsoft SQL Server
  6. Найдите sqljdbc4.jar и скопируйте его в каталог lib JRuby.
  7. jruby -S gem install activerecord-jdbcmssql-adapter
  8. Создать проект рельсов (jruby -S rails hello)
  9. Поместите правильные настройки в файл database.yml (пример ниже)
  10. Готово! Попробуйте запустить jruby script/console и создать модель.
    development:
      host: localhost
      adapter: jdbc
      username: sa
      password: kitteh
      driver: com.microsoft.sqlserver.jdbc.SQLServerDriver
      url: jdbc:sqlserver://localhost;databaseName=mydb
      timeout: 5000

Примечание. Я не уверен, что вы можете использовать проверку подлинности Windows с драйвером JDBC. Возможно, вам потребуется использовать аутентификацию SQL Server.

Удачи тебе!

Бен

person Community    schedule 09.10.2008
comment
Разве это не должно быть activerecord-jdbcmssql-adapter? - person Sunny; 05.08.2010
comment
Это работало для меня в то время, когда я писал это, хотя и не идеально. Возможно, было бы лучше, если бы я использовал предложенную вами настройку. Может соберусь попробовать. Тем временем вики сообщества включена — не стесняйтесь редактировать. - person Benjamin Atkin; 06.08.2010
comment
Большое спасибо, это сработало как шарм для меня. Хотя вам понадобится установленный гем «activerecord-jdbcmssql-adapter». - person RajG; 26.02.2016

Вместо того, чтобы запускать свой производственный сервер в Linux, вы решили запустить рельсы в Windows? В настоящее время я разрабатываю приложение с использованием SQL Server, и пока не узнаю, что оно работает нормально.

Это шаги для доступа к базе данных SQL Server из приложения Rails 2.0, работающего в Windows.

Адаптер SQL Server по умолчанию не включен в Rails 2. Его необходимо загрузить и установить с помощью следующей команды.

gem install activerecord-sqlserver-adapter
--source=http://gems.rubyonrails.org

Загрузите последнюю версию ruby-dbi с

http://rubyforge.org/projects/ruby-dbi/

а затем извлеките файл из ruby-dbi\lib\dbd\ADO.rb

в C:\ruby\lib\ruby\site_ruby\1.8\DBD\ADO\ADO.rb.

Внимание, папки ADO не существует, поэтому ее необходимо создать заранее.

Невозможно предварительно настроить rails для SQL Server с помощью параметра --database, просто создайте свое приложение как обычно, а затем измените config\database.yml в папке вашего приложения следующим образом:

development:
adapter: sqlserver
database: your_database_name
host: your_sqlserver_host
username: your_sqlserver_user
password: your_sqlserver_password

Запустите rake db:migrate, чтобы проверить вашу установку. Если все в порядке, вы не должны получать никаких сообщений об ошибках.

person hectorsq    schedule 19.09.2008

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

Я не думаю, что есть "хорошее решение" для этого, я боюсь.

person Aupajo    schedule 15.09.2008
comment
Вы настраиваете себя на миры боли. Либо перенесите свои данные, либо настройте какой-либо интерфейс MySQL на серверную часть MS SQL, если есть другие проблемы, о которых вы не упоминаете. Схема, которая нужна Rails, должна быть достаточной мотивацией. - person Subimage; 19.09.2008

Наши разработчики используют Mac OS X, а наше производство работает на Linux. По устаревшим причинам мы должны использовать MS SQL Server 2005.

Мы разрабатываем Ubuntu 8.04, но наши производственные серверы работают под управлением Linux (Centos), и мы также используем SqlServer 2005.

По нашему опыту, первоначальная установка и настройка были довольно болезненными — потребовалась пара недель, чтобы все работало вместе. Тем не менее, теперь все это кажется бесполезным, и я считаю, что SqlServer работает отлично.

Мы используем драйверы FreeTDS ODBC, которые после настройки работают нормально.

НЕ запускайте производственные приложения Rails в Windows - вы напрашиваетесь на неприятности. Это хорошо для развития, но не более того. Rails плохо масштабируется на платформах Windows.

Надеюсь, это поможет.

person Community    schedule 17.04.2009