Pergunta

Bem, agora que finalmente tenho minhas coisas estúpidas do ODBC configuradas, peguei um arquivo esquema.rb que passei de um banco de dados do Postgres e fiz um db:schema:load nele em um projeto Rails configurado para o SQL Server.

Bem, ele configura todo o esquema no banco de dados do SQL Server, exceto por um menor detalhe: nenhuma chave estrangeira é criada.

O comando RAKE não mostra erros e diz que está adicionando teclas estrangeiras. Mas eles realmente não são adicionados. Esta é a última parte do comando:

-- add_foreign_key("workhistoryform", "form", {:name=>"workhistoryform_form_rid_fkey", :column=>"form_rid", :primary_key=>"form_rid"})
   -> 0.0002s
-- initialize_schema_migrations_table()
   -> 0.0092s
-- assume_migrated_upto_version(0)
   -> 0.0942s
[earlz@earlzarch avp_msql_migrations]$

Então qual é o problema? O plugin estrangeiro não funciona no SQL Server? Se não fosse, eu esperaria ver um erro ou algo assim ...

Foi útil?

Solução

Ok, eu consertei. Bem, invadiu de qualquer maneira. O estrangeiro na verdade não possui suporte para o SQL Server, mas está próximo o suficiente para SQL_2003 que funciona (menos removendo chaves estrangeiras e detectando o esquema)

Eu fiz uma postagem sobre isso no meu blog que basicamente se resumia a adicionar A à lista de adaptadores e criar um novo adaptador muito simples para o SQL Server (use o adaptador PostgreSQL como modelo). (modificando a jóia estrangeira)

Outras dicas

Eu consertei isso corretamente e enviei uma solicitação de tração ao autor de estrangeiros. Enquanto isso, você pode usar a versão do meu repositório: https://github.com/cjheath/foreigner

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top