Domanda

Quando la lettura su e giocare con Rails lo scorso anno, uno degli strumenti che hanno reso il più grande impressione su di me era Rake. Un sistema di database delle versioni che mantiene identica a destra integrato tutti di db dev nel costruire ... una cosa del genere renderebbe la vita molto più facile (e più sicuro)!

Tuttavia, una delle cose che non sono stato in grado di capire: Come si fa a spostare queste modifiche ai server di produzione quando in realtà non hanno accesso ai server di produzione? Abbiamo più server in tutto il paese che in cui è installata l'applicazione / aggiornato da un pacchetto di installazione.

Nota: Questa domanda è più sulla strategia di Rails / Rake tecnologie specifiche. Non usiamo le rotaie, usiamo .Net. Ma se io riesco a capire questo scenario pubblicare, sembra che ci siano diversi strumenti Migratordotnet essere uno che ci potrebbe consentire di fare qualcosa di simile.

È stato utile?

Soluzione

Come probabilmente sapete, il modo standard Rails di correre migrazioni nella produzione è Capistrano . Ha un Deploy:. Compito migrazioni che gestisce le migrazioni su server remoti utilizzando ssh

Si potrebbe essere in grado di adattarsi a Capistrano fare quello che vuoi. È essenzialmente un modo flessibile per eseguire comandi su gruppi di server remoti. È necessario avere Rubino installato sulla macchina che si sta distribuendo dal al fine di usarlo, ma non sulle macchine si sta distribuendo a .

La soluzione migliore potrebbe essere quella di scrivere un compito personalizzato Capistrano per caricare il file setup.exe, eseguirlo, quindi eseguire le migrazioni (magari utilizzando Migrator.NET).

Altri suggerimenti

Si potrebbe essere in grado di usare qualcosa come SQL Red Gate Confronta per produrre script schema diff che ti permettono di automatizzare il processo di aggiornamento del database. Ho usato lo strumento manualmente per fare tali cambiamenti e potrebbe facilmente vedere la creazione di un programma che avrebbe eseguito questi aggiornamenti come parte del processo di aggiornamento. Se dovessi per automatizzare esso, però, mi piacerebbe progettare in qualcosa che mi avrebbe permesso di controllare quale versione dello schema era a posto ed eseguire gli script necessari nell'ordine corretto per tirarlo su la la versione desiderata.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top