Van egy verziókövető rendszer adatbázis szerkezete megváltozik?

szavazat
104

Sokszor befut a következő probléma.

Dolgozom néhány változtatást, hogy a projekt a szükséges új táblák és oszlopok az adatbázisban. Azt, hogy az adatbázis-módosítások és folytatom a munkát. Általában, emlékszem, hogy írják le a változásokat, hogy azok lehet reprodukálni az élő rendszer. Én azonban nem mindig emlékszem, mi már megváltozott, és én nem mindig emlékezni, hogy írja le.

Tehát, azt, hogy a push az élő rendszer, és kap egy nagy, nyilvánvaló hiba, hogy nincs NewColumnX, pfuj.

Függetlenül attól, hogy az a tény, hogy ez nem lehet a legjobb gyakorlat ez a helyzet, van egy verziókövető rendszer adatbázisokhoz? Nem érdekel a konkrét adatbázis-technológia. Csak azt szeretném tudni, ha létezik ilyen. Ha ez megtörténik, hogy működjön együtt az MS SQL Server, akkor jó.

A kérdést 02/08/2008 02:52
a forrás felhasználó
Más nyelveken...                            


22 válasz

szavazat
9

A legtöbb adatbázis motorok-nak támogatnia kell a dömping az adatbázis fájlba. Tudom MySQL nem, egyébként. Ez csak egy szöveges fájl, így lehet azt állítják, hogy a Subversion, vagy bármi, amit használ. Ez könnyű lesz futtatni egy diff a fájlokat is.

Válaszolt 02/08/2008 02:56
a forrás felhasználó

szavazat
7

Az Oracle, azt használja varangy , amely képes kiírni a sémát, amelyet több különálló fájlt (pl egy fájlt a táblázatot). Van néhány szkript, hogy kezelni ezt a gyűjtemény Perforce, de azt hiszem, meg kell könnyen megvalósítható szinte bármilyen felülvizsgálatát rendszer.

Válaszolt 02/08/2008 07:05
a forrás felhasználó

szavazat
56

A Ruby on Rails, van egy fogalom a migráció - gyors script változtatni az adatbázisban.

Létrehoz egy migrációs fájlt, amely a szabályok, hogy növelje a db változat (például hozzáadott egy oszlop) és szabályokat, leértékeli a változatát (például eltávolítja a oszlop). Minden migráció számozott, és egy asztal nyomon követi a jelenlegi db változat.

Ahhoz, hogy vándorolnak ki , futtat egy parancsot az úgynevezett „db: vándorolnak”, ami úgy néz ki, a változat és alkalmazza a szükséges szkripteket. Akkor vándorolnak le hasonló módon.

A migrációs szkriptek maguk tartják a verziókövető rendszer - amikor megváltoztatja az adatbázist, hogy ellenőrizze az új forgatókönyvet, és minden fejlesztő alkalmazza azt, hogy a helyi db a legújabb verzióra.

Válaszolt 02/08/2008 07:23
a forrás felhasználó

szavazat
5

Van egy PHP5 „adatbázis migráció keret” néven Ruckusing. Én nem használtam, de a példák azt mutatják, az ötlet, ha használja a nyelvet az adatbázis létrehozása, ahogy és amikor szükséges, akkor csak be kell követni forrás fájlokat.

Válaszolt 02/08/2008 08:48
a forrás felhasználó

szavazat
6

Írom db kiadás szkriptek párhuzamosan kódolás, és hogy a kiadás szkriptek a projekt bizonyos részletének SS. Ha én, hogy a változás a kódot, hogy igényel db változás, akkor frissítem a kiadás script egyidejűleg. Kiadás előtt, futok a kiadás script egy tiszta dev db (másolt struktúra bölcs termelés), és nem a végső tesztelési rajta.

Válaszolt 30/08/2008 19:58
a forrás felhasználó

szavazat
7

Már a kezdeti create table nyilatkozatok változata vezérlő, majd adjunk hozzá változtat asztal nyilatkozatok, de soha nem szerkesztheti a fájlt, csak több változtat fájlokat ideális nevű egymás után, sőt, mint a „változás set”, hogy megtalálja az összes változtatást egy adott telepítés.

A legellenállóbb része, amit én látok, a követés függőségek, például egy adott telepítési B tábla esetleg frissíteni kell, mielőtt táblázat A.

Válaszolt 31/08/2008 12:25
a forrás felhasználó

szavazat
1

Ennek hiányában a VCS asztali változások Már fakitermelés őket egy wiki. Legalábbis akkor azt láthatjuk, hogy mikor és miért változott. Ez messze nem tökéletes, hogy nem mindenki csinálja, és van több termék változatok használata, de jobb mint a semmi.

Válaszolt 01/09/2008 08:29
a forrás felhasználó

szavazat
7

Vessen egy pillantást az Oracle csomag DBMS_METADATA.

Különösen, az alábbi eljárások különösen hasznosak:

  • DBMS_METADATA.GET_DDL
  • DBMS_METADATA.SET_TRANSFORM_PARAM
  • DBMS_METADATA.GET_GRANTED_DDL

Ha már ismeri, hogyan működnek (elég magától értetődő), akkor írj egy egyszerű script kiírási eredményeit e módszerek a szöveges fájlokat tudunk alá forrás ellenőrzés. Sok szerencsét!

Nem biztos, hogy ha van valami, ez az egyszerű MSSQL.

Válaszolt 01/09/2008 21:57
a forrás felhasználó

szavazat
8

Ha az SQL Server nehéz lenne megverni adatok Dude (más néven a Database Edition a Visual Studio). Ha egyszer kap a nyitjára, csinál egy sémát össze között, a forrás által vezérelt változata az adatbázis és a változat a termelés a szél. És egy kattintással létrehozhatja a diff DDL.

Van egy oktató videót az MSDN, ami nagyon hasznos.

Tudok DBMS_METADATA és varangy, de ha valaki elér egy Data Dude Oracle akkor az élet lenne igazán édes.

Válaszolt 10/09/2008 20:49
a forrás felhasználó

szavazat
6

Tettem ezt le, és az évek - ügyvezető (vagy próbálják kezelni) séma változatok. A legjobb módszerek függenek eszközökkel van. Ha lehet kapni a Quest Software eszköz „séma Manager” akkor lesz jó formában. Az Oracle saját, rosszabb eszköz, amely az úgynevezett „séma Manager” (Zavaros sok?), Hogy én nem ajánlom.

Anélkül, automatizált eszközzel (lásd a többi hozzászólás itt találhatóak adatok Haver), akkor neked kell a szkripteket és DDL fájlokat. Pick megközelítés, dokumentálja, és kövesse azt szigorúan. Szeretem, ha az a képesség, hogy újra létrehozni az adatbázis egy adott pillanatban, úgyhogy inkább egy teljes DDL export a teljes adatbázis (ha jól tudom a DBA), illetve a fejlesztő séma (ha jól tudom a termék -fejlesztés módban).

Válaszolt 15/09/2008 16:01
a forrás felhasználó

szavazat
6

PLSQL Fejlesztő, egy szerszámot minden nek Automations, van egy plugin adattárak, hogy rendben működik (de nem nagy) Visual Source Safe.

A web:

A Version Control Plug-In egy szoros integrációja a PL / SQL Developer IDE >> és a Version Control System, amely támogatja a Microsoft SCC Interface Specification. >> Ez magában foglalja a legnépszerűbb Version Control Systems, mint a Microsoft Visual SourceSafe, >> Merant PVC-k és MKS Forrás Integrity.

http://www.allroundautomations.com/plsvcs.html

Válaszolt 17/09/2008 16:50
a forrás felhasználó

szavazat
5

ER Studio lehetővé teszi, hogy fordított az adatbázis sémát az eszközt, és akkor majd összehasonlítani, hogy élni adatbázisok.

Példa: Fordított a fejlesztés sémát ER Stúdió - összehasonlítani, hogy a termelés és kiírja az összes különbséget. Ez script a változásokat, vagy csak nyomja őket automatikusan.

Ha van egy sémát ER Studio, akkor sem menteni a teremtés script, vagy mentse el a szabványos bináris és mentse el a verzió ellenőrzése. Ha valaha szeretné, hogy menjen vissza a múlt változata a program, csak nézd meg és tolja a db platform.

Válaszolt 17/09/2008 19:04
a forrás felhasználó

szavazat
1

Két könyv ajánlásokat: „Refactoring adatbázisok” által Ambler és Sadalage és „Agile Adatbázis Techniques” Ambler.

Valaki említette Rails Migrations. Azt hiszem, hogy a munka nagy, akár azon Rails alkalmazások. Használtam őket egy ASP alkalmazás SQL Server, amely voltunk a folyamat halad a Rails. Megnézted a migrációs szkriptek magukat a VCS. Itt a hozzászólás Pragmatic Dave Thomas a témában.

Válaszolt 22/09/2008 19:17
a forrás felhasználó

szavazat
1

Én azt javasolnám, két lehetőség közül választhat. Először befektetni PowerDesigner Sybase. Enterprise Edition. Ez lehetővé teszi, hogy tervezzen Fizikai datamodels, és egy csomó más. De jön egy adattár, amely lehetővé teszi, hogy ellenőrizze a modellek. Minden új check-in lehet egy új verzió, akkor lehet összehasonlítani bármelyik verzió más változat, és még mi van az adatbázis abban az időben. Ezt követően egy listát minden különbség, és megkérdezi, hogy melyik kell vándoroltak ... és akkor épít a forgatókönyvet csinálni. Ez nem olcsó, de ez egy alku kétszeres áron, és ez a megtérülés kb 6 hónap.

A másik elképzelés az, hogy bekapcsolja a DDL könyvvizsgálat (működik Oracle). Ez létrehoz egy táblázatot minden változás, amit csinál. Ha a lekérdezés a változásokat az időbélyeg utoljára át az adatbázis változások ösztökélni, hogy most, akkor van egy rendezett listáját mindent, amit tettél. Néhány ahol kikötések megszüntetésére zéró összegű változik, mint a create table ize; majd csepp táblázat ize; és könnyedén építeni egy mod forgatókönyvet. Miért tartja a változásokat a wiki, ez kétszerese a munkát. Hagyja az adatbázis követni őket.

Válaszolt 26/09/2008 18:53
a forrás felhasználó

szavazat
2

Már használt MS Team System Database Edition egész jó sikerrel. Együttműködik TFS verzió ellenőrzést és a Visual Studio többé-kevésbé zökkenőmentesen, és lehetővé teszi számunkra, hogy sikerül tárolt speciális képessége, nézetek, stb, könnyen. Konfliktusrendezés lehet a fájdalom, de verzióelőzményeket befejeződött ha kész. Ezután vándorlások QA és a termelés rendkívül egyszerű.

Ez igaz, hogy ez egy 1.0-s verzió a termék, bár, és nem nélkülözi néhány kérdés.

Válaszolt 26/09/2008 19:12
a forrás felhasználó

szavazat
29

Én egy kicsit régimódi, hogy azt használja forrás fájlokat az adatbázis létrehozásához. Vannak valójában 2 fájl - projekt-database.sql és a projekt-updates.sql - az első a séma és kitartó adatok, a második a módosításokat. Természetesen mindkét alatt forrás ellenőrzés.

Ha az adatbázis változásokat, először frissíti a fő sémát projekt database.sql, majd másolja át a megfelelő információ, hogy a projekt-updates.sql például ALTER TABLE utasításokkal. Tudok majd alkalmazza a frissítéseket a fejlesztés adatbázis, vizsgálat, hajtogat, amíg kész is. Ezután ellenőrizze a fájlokat, újra a tesztet, és alkalmazza a termelés.

Azt is általában van egy tábla a db - Config - mint például:

SQL

CREATE TABLE Config
(
    cfg_tag VARCHAR(50),
    cfg_value VARCHAR(100)
);

INSERT IGNORE  INTO Config(cfg_tag, cfg_value) VALUES
( 'db_version', '$Revision: $'),
( 'db_revision', '$Revision: $');

Aztán hozzá a következő frissítési beállítások:

UPDATE Config SET cfg_value='$Revision: $' WHERE cfg_tag='db_revision';

A db_versioncsak lesz változott meg, amikor az adatbázis újra, és a db_revisionad nekem egy jelzés, hogy milyen messze a db van kapcsolva a kiindulási értékhez képest.

Tudtam tartani a frissítéseket saját külön fájlokat, de úgy döntöttem, hogy áttörjük őket össze, és használja a kivágás és beillesztés kivonat vonatkozó részeit. Egy kicsit takarítás érdekében, azaz, távolítsa „:” a $ Revision 1.1 $ befagyasztására őket.

Válaszolt 26/09/2008 21:29
a forrás felhasználó

szavazat
10

Én nagyon ajánlom SQL delta . Csak használható, hogy a diff scriptek, amikor végeztem kódoló én funkciót, és ellenőrizze azokat szkripteket én forrás vezérlő eszköz (Mercurial :))

Mindketten egy SQL szerver és Oracle verzió.

Válaszolt 28/05/2009 03:12
a forrás felhasználó

szavazat
2

Séma összehasonlítása az Oracle olyan eszköz kifejezetten vándorolnak változások Oracle adatbázis másik. Kérjük, látogasson el az alábbi URL a letöltési linket, ahol képes lesz arra, hogy a szoftver használatára egy teljesen működőképes próbaverzió.