2008-09-15 10 views
8

¿Alguien aquí tiene una experiencia positiva de trabajar con MS SQL Server 2005 desde Rails 2.x?Uso de Rails 2.x con MS SQL Server 2005

Nuestros desarrolladores utilizan Mac OS X, y nuestra producción se ejecuta en Linux. Por razones heredadas debemos usar MS SQL Server 2005.

Estamos usando ruby-odbc y estamos teniendo varios problemas, demasiado deprimentes para enumerarlos aquí. Me da la impresión de que estamos haciendo algo mal.

Estoy hablando del uso sin compromiso, es decir, con migraciones y todo.

Gracias,

Respuesta

1

Yo sugeriría fuertemente a sopesar la migración de la base de datos existente. Probablemente te encuentres en un mundo de dolor bastante rápido. Por experiencia, los raíles y los esquemas heredados tampoco van demasiado bien juntos.

No creo que haya una "buena solución" para esta, me temo.

+0

Te estás preparando para mundos de dolor. Migre sus datos o configure algún tipo de interfaz de MySQL para su back-end de MS SQL, si hay otras preocupaciones que no menciona. Las necesidades de Schema Rails deberían ser lo suficientemente motivadoras. – Subimage

3

En lugar de ejecutar su servidor de producción en Linux, ¿ha considerado ejecutar rails en Windows? Actualmente estoy desarrollando una aplicación que usa SQL Server y hasta que sé que funciona bien.

Estos son los pasos para acceder a una base de datos de SQL Server desde una aplicación de Rails 2.0 que se ejecuta en Windows.

El adaptador de SQL Server no está incluido por defecto en Rails 2. Es necesario descargarlo e instalarlo utilizando el siguiente comando.

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

descargar la última versión de DBI-rubí de

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

y luego extraer el archivo de rubí-DBI \ lib \ DBD \ ADO.rb

a C: \ ruby \ lib \ ruby ​​\ site_ruby \ 1.8 \ DBD \ ADO \ ADO.rb.

Advertencia, la carpeta ADO no existe, por lo que debe crearla con anticipación.

No es posible configurar previamente los carriles para SQL Server utilizando la opción --database, basta con crear su aplicación como de costumbre y luego modificar config \ database.yml en su carpeta de la aplicación de la siguiente manera:

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

Run rake db: migra para verificar tu instalación. Si todo está bien, no debería recibir ningún mensaje de error.

8

¿Ha considerado utilizar JRuby? Microsoft tiene un JDBC driver for SQL Server que se puede ejecutar en variantes de UNIX (es Java AFAIK puro). Hoy pude obtener la vista previa de la tecnología 2.0 trabajando con JRuby and Rails 2.1. Todavía no he probado las migraciones, pero hasta ahora el controlador parece estar funcionando bastante bien.

He aquí un esbozo de cómo conseguir que funcione:

  1. Asegúrese de Java 6 se instala
  2. Instalar JRuby siguiendo las instrucciones de la JRuby website
  3. instalar rieles con gema (jruby -S gem install rails)
  4. Descargue el paquete UNIX de Microsoft's SQL Server JDBC driver (Versión 2.0)
  5. Descomprima el controlador de Microsoft SQL Server
  6. Encuentra sqljdbc4.jar y copiarlo en el directorio lib de JRuby
  7. jruby -S gem install activerecord-jdbcmssql-adapter
  8. Crear un proyecto de carriles (jruby -S rails hello)
  9. Ponga los ajustes apropiados en database.yml (ejemplo siguiente)
  10. ya está todo listo ! Intenta ejecutar jruby script/console y crea un modelo.
 
    development: 
     host: localhost 
     adapter: jdbc 
     username: sa 
     password: kitteh 
     driver: com.microsoft.sqlserver.jdbc.SQLServerDriver 
     url: jdbc:sqlserver://localhost;databaseName=mydb 
     timeout: 5000 

Nota: No estoy seguro de que puede utilizar la autenticación de Windows con el controlador JDBC. Es posible que necesite usar la Autenticación de SQL Server.

¡La mejor de las suertes para ti!

Ben

+1

¿No debería ser activerecord-jdbcmssql-adapter? – Sunny

+0

Me funcionó en el momento en que escribí esto, aunque no perfectamente. Tal vez hubiera funcionado mejor si hubiera usado la configuración que sugieres. Puedo intentarlo. Mientras tanto, la wiki de la comunidad está activada; siéntete libre de editarla. –

+0

Muchas gracias, esto funcionó como un encanto para mí. Aunque necesitaría instalar gem 'activerecord-jdbcmssql-adapter'. – TheMouseMan

1

Nuestros desarrolladores utilizan Mac OS X, y nuestras series de producción en Linux. Por razones de herencia que debemos utilizar MS SQL Server 2005.

Estamos desarrollando en Ubuntu 8.04, pero nuestros servidores de producción está ejecutando Linux (CentOS) y también estamos utilizando SqlServer 2005.

De nuestras experiencias del La configuración inicial y la configuración fueron bastante dolorosas: nos llevó un par de semanas lograr que todo funcionara bien juntos. Sin embargo, todo parece ahora, y me parece que SqlServer funciona perfectamente bien.

Usamos los controladores FreeTDS ODBC que una vez configurados están bien.

NO ejecute producciones Aplicaciones de rieles en Windows: está buscando problemas. Está bien para el desarrollo, pero nada más. Rails no escala bien en plataformas Windows.

Espero que ayude.

Cuestiones relacionadas