Pergunta

Devo usar um esquema de escrita à mão para o meu projetada desenvolvido em uma linguagem de alto nível (como Python, Ruby) ou devo deixar a minha solução ORM auto gerar-lo? Eventualmente vou precisar migrar sem destruir todos os dados. Não há problema em ser amarrado a uma específica RDBMS, mas seria bom se recursos como restrições e procedimentos poderiam ser apoiada de alguma forma.

Foi útil?

Solução

Eu nunca ir com esquema gerado-ORM.

Eu acho que as formas em que o ORM quer gerar o esquema estão muitas vezes em desacordo totais com a forma como eu quero o meu banco de dados a ser estruturada. Além disso, e eu sei que isso é trivial, o esquema de nomenclatura é geralmente pobre.

estrutura de banco de dados tem suas próprias limitações, que eu acho que normalmente as ferramentas ORM autogeneration não considerar plenamente. E se você vai estar querendo executar relatórios sobre seu banco de dados mais tarde (e você), em seguida, ter boa estrutura de banco de dados e design é muito importante.

Outras dicas

este Codificação artigo Horror e ligações para discussão sobre a migração você eventualmente precisa fazer. Plano para ele agora.

Veja também Martin Fowler sobre a evolução da base de dados ; Eu particularmente recomendar a noção de que a geração de dados de teste é parte de set-up banco de dados. A idéia pode ser um pouco subdesenvolvida, em que não há uma definição clara dos diferentes problemas em ambientes diferentes, o desenvolvimento contra QA contra a produção.

Deixe o ORM gerar o esquema que ele quer. Então você pode sempre mudar as coisas que são muito lento ou que você quer de forma diferente. Mas permite-lhe começar rapidamente e ter algo de trabalho mais as pessoas ORM geralmente sabem o que fazer quando se trata de gerar esquemas.

Deixe sua solução ORM gerá-lo, mas não cegamente usá-lo; lê-lo e sanidade check-lo.

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