Vra

Ek wil om te kry my databasisse weergawe onder beheer.Het iemand enige raad of aanbeveel artikels om my te kry begin?

Ek sal altyd wil om te hê ten minste sommige data in daar (soos alumb noem:gebruiker en administrateurs).Ek sal ook wil dikwels'n groot versameling van gegenereer toets data vir prestasie metings.

Was dit nuttig?

Oplossing

Martin Fowler het my gunsteling artikel oor die onderwerp, http://martinfowler.com/articles/evodb.html.Ek kies om nie te sit skedule dumps in die weergawe onder beheer as alumb en ander voor te stel, want ek wil'n maklike manier om op te gradeer my produksie databasis.

Vir'n web-program waar ek sal'n enkele produksie databasis geval, ek gebruik twee tegnieke:

Databasis Opgradering Van Skrifte

'n reeks databasis opgradering skrifte wat bevat die DDL nodig om te beweeg van die skedule van weergawe N N+1.(Hierdie gaan in jou weergawe beheer stelsel.) 'n _version_history_ tafel, iets soos

create table VersionHistory (
    Version int primary key,
    UpgradeStart datetime not null,
    UpgradeEnd datetime
    );

kry'n nuwe inskrywing elke keer as'n opgradering script loop wat ooreenstem met die nuwe weergawe.

Dit verseker dat dit is maklik om te sien watter weergawe van die databasis skedule bestaan en dat databasis opgradering skrifte is net een keer.Weer, dit is nie databasis dumps.Inteendeel, elke script verteenwoordig die veranderinge nodig om te beweeg van die een weergawe na die volgende.Hulle is die script dat jy aansoek doen om jou produksie databasis te "upgrade" dit.

Ontwikkelaar Sandbox Sinchronisasie

  1. 'n script te rugsteun, reiniging, en krimp'n produksie databasis.Loop dit na elke opgradeer na die produksie DB.
  2. 'n script te herstel (en aanpas, indien nodig) die rugsteun op'n ontwikkelaar se werkstasie.Elke ontwikkelaar loop hierdie script na elke opgradeer na die produksie DB.

'n caveat:My outomatiese toetse hardloop teen'n skedule-korrek, maar leë databasis, so hierdie raad nie sal perfek pas by jou behoeftes.

Ander wenke

Rooi Hek se SQL Vergelyk produk nie net kan jy om te doen voorwerp-vlak vergelykings, en genereer verander skrifte van daardie, maar dit kan jy ook om te uitvoer jou databasis voorwerpe in'n gids hiërargie georganiseer deur die voorwerp tipe, met een [objectname].sql skepping script per voorwerp in hierdie dopgehou.Die doel-tipe hiërargie is soos hierdie:

\Funksies
\Sekuriteit
\Sekuriteit olle
\Sekuriteit\Skemas
\Sekuriteit\Gebruikers
\Gestoor Prosedures
afels

As jy stort jou skrifte na dieselfde wortel gids nadat jy veranderinge maak, kan jy gebruik hierdie om te werk jou SVN repo, en hou'n geskiedenis van elke item individueel.

Dit is een van die "harde probleme" omliggende ontwikkeling.Sover ek weet daar is geen perfekte oplossings.

As jy net nodig het om te slaan die databasis struktuur en nie die data wat jy kan die uitvoer van die databasis as SQL navrae.(in die Onderneming Bestuurder:Regs kliek op die databasis -> Genereer SQL script.Ek beveel die opstel van die "skep'n lêer per voorwerp" op die options tab) Jy kan dan pleeg hierdie teks lêers te svn en maak gebruik van svn se diff en aan te meld funksies.

Ek het hierdie vasgebind saam met'n Bondel script wat neem'n paar parameters en stel die databasis.Ek het ook bygevoeg'n paar ekstra navrae wat betree die standaard data soos gebruiker en die admin gebruiker.(As jy wil meer inligting oor hierdie, post iets en ek kan die script iewers toeganklik)

As jy nodig het om te hou al die data so goed, ek beveel die behoud van'n back-up van die databasis en die gebruik van Redgate (http://www.red-gate.com/) produkte om te doen die vergelykings.Hulle kom nie goedkoop nie, maar hulle is die moeite werd elke sent.

Eerstens, moet jy kies die weergawe van die beheer stelsel wat is reg vir jou:

  • Gesentraliseerde Weergawe Beheer stelsel - 'n standaard stelsel waar gebruikers check uit/gaan in die voor/na hulle werk op lêers, en die lêers word gehou in'n enkele sentrale bediener

  • Versprei Weergawe Beheer stelsel - 'n stelsel waar die bron is wat gekloon, en elke kloon is eintlik die volle rugsteun van die repository, so as enige bediener ongelukke, dan is enige gekloon bron gebruik kan word om dit te herstel Na die keuse van die regte stelsel vir jou behoeftes, sal jy nodig het om die opstel van die repository wat is die kern van elke weergawe beheer stelsel Al hierdie verduidelik in die volgende artikel: http://solutioncenter.apexsql.com/sql-server-source-control-part-i-understanding-source-control-basics/

Na die opstel van'n bron, en in die geval van'n sentrale weergawe beheer stelsel'n werk gids, kan jy lees hierdie artikel.Dit toon hoe om te installeer bron beheer in'n ontwikkeling omgewing met behulp van:

  • SQL Server Bestuur Ateljee via die MSSCCI diensverskaffer,

  • Visual Studio en SQL Server Data Gereedskap

  • 'n 3de party hulpmiddel ApexSQL Bron Beheer

Hier by die Rooi Hek ons bied'n hulpmiddel, SQL Bron Beheer, wat maak gebruik van SQL Vergelyk tegnologie te skakel jou databasis met'n TFS of SVN.Hierdie instrument integreer in SSMS en kan jy werk as wat jy normaalweg sou, behalwe dat dit nou kan jy pleeg die voorwerpe.

Vir'n migrasies-gebaseerde benadering (meer geskik is vir die outomatiese ontplooi), bied ons SQL Verander Outomatisering (voorheen genoem ReadyRoll), wat skep en bestuur van'n stel van inkrementele skrifte as'n Visual Studio projek.

In die SQL-Bron Beheer dit is moontlik om te spesifiseer statiese data tafels.Hierdie is gestoor in bron beheer soos VOEG state.

As jy praat oor die toets data, ons wil aanbeveel dat jy óf genereer toets data is met'n instrument of via'n post-ontplooiing script wat jy definieer, of jy eenvoudig die herstel van'n produksie friends na die dev omgewing.

Jy mag dalk wil om te kyk na Liquibase (http://www.liquibase.org/).Selfs as jy nie die gebruik van die instrument self dit hanteer die konsepte van die databasis bestuur van verandering of refactoring mooi goed.

+1 vir almal wat is aanbeveel om die RedGate gereedskap, met'n addisionele aanbeveling en'n caveat.

SqlCompare ook'n ordentlik gedokumenteer API:so jy kan, byvoorbeeld, skryf'n konsole app wat synchronisaties jou bron beheer skrifte gids met'n CI integrasie toets databasis op checkin, so dat wanneer iemand tjeks in'n verandering van die skedule van hul skrifte gids dit is outomaties ontplooi saam met die wat ooreenstem met die aansoek-kode verander.Dit help om die gaping met die ontwikkelaars wat vergeetagtig oor voortplantingsmateriaal veranderinge in hul plaaslike db tot'n gedeelde ontwikkeling DB (ongeveer die helfte van ons, dink ek :) ).

'n nadeel is dat met'n geskryf oplossing of andersins, die RedGate gereedskap is voldoende glad dat dit is maklik om te vergeet van SQL realiteite onderliggende die onttrekking.As jy die naam van al die kolomme in'n tabel, SqlCompare het geen manier om die kaart van die ou kolomme aan die nuwe kolomme en sal drop al die data in die tabel.Dit sal genereer waarskuwings maar ek het gesien dat mense klik verlede wat.Daar is'n algemene punt hier die moeite werd maak, dink ek, dat jy net kan outomatiseer DB weergawes en opgradering van so ver - die abstraksies is baie lekkende.

Ons gebruik DBGhost om te bestuur ons SQL databasis.Dan sit jy jou skrifte te bou van'n nuwe databasis in jou weergawe beheer, en dit sal óf die bou van'n nuwe databasis, of op te gradeer enige bestaande databasis om die skedule in weergawe beheer.Dat die manier waarop jy hoef nie te bekommerd wees oor die skep van verandering skrifte (alhoewel jy kan nog steeds doen, dat, as byvoorbeeld jy wil om te verander die datatipe van'n kolom en nodig het om te omskep data).

Met VS 2010, gebruik die Databasis projek.

  1. Script uit jou databasis
  2. Maak veranderinge aan skrifte of direk op jou db bediener
  3. Sync met behulp van Data > Skema Vergelyk

Maak'n perfekte DB weergawes oplossing, en maak sinchroniseer DB is'n briesie.

Dit is'n goeie benadering te red databasis skrifte in weergawe beheer met verandering skrifte, sodat jy kan opgradeer enige een databasis wat jy het.Ook jy dalk wil om te red skemas vir verskillende weergawes sodat jy kan skep'n volledige databasis sonder om aansoek te doen al die verandering skrifte.Die hantering van die skrifte moet word outomatiese so dat jy nie het om te doen handleiding werk.

Ek dink dit is belangrik om'n aparte databasis vir elke ontwikkelaar en nie gebruik maak van'n gedeelde databasis.Dat die manier waarop die ontwikkelaars kan skep toets gevalle en ontwikkeling fases onafhanklik van ander ontwikkelaars.

Die outomatisering van die instrument moet beteken vir die hantering van databasis metadata, wat vertel wat databasisse is in watter staat van ontwikkeling en wat tafels bevat weergawe beheerbaar data en so aan.

Jy kan ook kyk na'n migrasies oplossing.Dit laat jou toe om te spesifiseer jou databasis skedule in C# kode, en rol jou databasis weergawe op en af met behulp van MSBuild.

Ek is tans met behulp van DbUp, en dit werk goed.

Jy het nie noem enige besonderhede oor jou teiken omgewing of beperkinge, so dit is dalk nie heeltemal van toepassing...maar as jy op soek is na'n manier om effektief te spoor van'n ontwikkelende DB skedule en nie nadelige om die idee van die gebruik van Ruby, ActiveRecord se migrasie is right up jou alley.

Migrasies programatically definieer databasis transformasies met behulp van'n Ruby DSL;elke transformasie toegepas kan word of (gewoonlik) terug gerol, sodat jy om te spring na'n ander weergawe van jou DB skedule op enige gegewe punt in die tyd.Die lêer definisie van hierdie transformasies kan nagegaan word in weergawe beheer soos enige ander stuk van die bron-kode.

Want migrasies is'n deel van die ActiveRecord, hulle tipies vind gebruik in volle-stapel Relings programme;egter, kan jy gebruik ActiveRecord onafhanklik van die Relings met'n minimale inspanning.Sien hier vir'n meer volledige behandeling van die gebruik van AR se migrasies buite die Relings.

Elke databasis moet wees onder die bron-kode te beheer.Wat ontbreek is'n instrument om outomaties script al die databasis voorwerpe - en "opset data" - tot-lêer, wat dan kan bygevoeg word om enige bron beheer stelsel.As jy met behulp van SQL Server, dan is my oplossing is hier : http://dbsourcetools.codeplex.com/ .Om pret te hê.- Nathan.

Dit is eenvoudig.

  1. Wanneer die basis projek is gereed dan moet jy skep volledige databasis script.Hierdie skrif is verbind tot SVN.Dit is die eerste weergawe.

  2. Na dat al die ontwikkelaars skep verandering skrifte (VERANDER..., nuwe tafels, sprocs, ens).

  3. Wanneer jy nodig het om die huidige weergawe, dan moet jy uit te voer al die nuwe verandering skrifte.

  4. Wanneer die app is vrygestel tot vervaardiging dan gaan jy terug na 1 (maar dan sal dit wees opeenvolgende weergawe van die kursus).

Nant sal jou help om uit te voer diegene verander skrifte.:)

En onthou.Alles werk goed wanneer daar is dissipline.Elke keer wanneer die databasis verandering is verbind dan die ooreenstemmende funksies in die kode is verbind ook.

As jy het'n klein databasis en jy wil weergawe van die hele ding, hierdie joernaal script dalk help.Dit oneigen, saamgepers, en tjeks'n MSSQL databasis MDF lêer in te Ondermyning.

As jy meestal wil weergawe van jou skedule en net'n klein hoeveelheid van die verwysing data, wat jy moontlik kan gebruik Subsoniese Migrasies om te hanteer.Die voordeel is dat jy kan maklik migreer op of af te enige spesifieke weergawe.

Te maak die stort om'n bron-kode beheer stelsel wat bietjie vinniger, kan jy sien watter voorwerpe verander het sedert die laaste tyd deur gebruik te maak van die weergawe-inligting in sysobjects.

Opstel: Die skep van'n tafel in elke databasis wat jy wil om te kyk geleidelik te hou die weergawe-inligting van die laaste keer wat jy dit nagegaan (leeg op die eerste lopie).Duidelik is hierdie tafel as jy wil hê na re-scan jou hele data struktuur.

IF ISNULL(OBJECT_ID('last_run_sysversions'), 0) <> 0 DROP TABLE last_run_sysversions
CREATE TABLE last_run_sysversions (
    name varchar(128), 
    id int, base_schema_ver int,
    schema_ver int,
    type char(2)
)

Normale loop af: Jy kan die resultate van hierdie sql, en genereer sql skrifte vir net die mense wat jy belangstel in, en sit hulle in'n bron beheer van jou keuse.

IF ISNULL(OBJECT_ID('tempdb.dbo.#tmp'), 0) <> 0 DROP TABLE #tmp
CREATE TABLE #tmp (
    name varchar(128), 
    id int, base_schema_ver int,
    schema_ver int,
    type char(2)
)

SET NOCOUNT ON

-- Insert the values from the end of the last run into #tmp
INSERT #tmp (name, id, base_schema_ver, schema_ver, type) 
SELECT name, id, base_schema_ver, schema_ver, type FROM last_run_sysversions

DELETE last_run_sysversions
INSERT last_run_sysversions (name, id, base_schema_ver, schema_ver, type)
SELECT name, id, base_schema_ver, schema_ver, type FROM sysobjects

-- This next bit lists all differences to scripts.
SET NOCOUNT OFF

--Renamed.
SELECT 'renamed' AS ChangeType, t.name, o.name AS extra_info, 1 AS Priority
FROM sysobjects o INNER JOIN #tmp t ON o.id = t.id
WHERE o.name <> t.name /*COLLATE*/
AND o.type IN ('TR', 'P' ,'U' ,'V')
UNION 

--Changed (using alter)
SELECT 'changed' AS ChangeType, o.name /*COLLATE*/, 
       'altered' AS extra_info, 2 AS Priority
FROM sysobjects o INNER JOIN #tmp t ON o.id = t.id 
WHERE (
   o.base_schema_ver <> t.base_schema_ver
OR o.schema_ver      <> t.schema_ver
)
AND  o.type IN ('TR', 'P' ,'U' ,'V')
AND  o.name NOT IN ( SELECT oi.name 
         FROM sysobjects oi INNER JOIN #tmp ti ON oi.id = ti.id
         WHERE oi.name <> ti.name /*COLLATE*/
         AND oi.type IN ('TR', 'P' ,'U' ,'V')) 
UNION

--Changed (actually dropped and recreated [but not renamed])
SELECT 'changed' AS ChangeType, t.name, 'dropped' AS extra_info, 2 AS Priority
FROM #tmp t
WHERE    t.name IN ( SELECT ti.name /*COLLATE*/ FROM #tmp ti
         WHERE NOT EXISTS (SELECT * FROM sysobjects oi
                           WHERE oi.id = ti.id))
AND  t.name IN ( SELECT oi.name /*COLLATE*/ FROM sysobjects oi
         WHERE NOT EXISTS (SELECT * FROM #tmp ti
                           WHERE oi.id = ti.id)
         AND   oi.type  IN ('TR', 'P' ,'U' ,'V'))
UNION

--Deleted
SELECT 'deleted' AS ChangeType, t.name, '' AS extra_info, 0 AS Priority
FROM #tmp t
WHERE NOT EXISTS (SELECT * FROM sysobjects o
                  WHERE o.id = t.id)
AND t.name NOT IN (  SELECT oi.name /*COLLATE*/ FROM sysobjects oi
         WHERE NOT EXISTS (SELECT * FROM #tmp ti
                           WHERE oi.id = ti.id)
         AND   oi.type  IN ('TR', 'P' ,'U' ,'V'))
UNION

--Added
SELECT 'added' AS ChangeType, o.name /*COLLATE*/, '' AS extra_info, 4 AS Priority
FROM sysobjects o
WHERE NOT EXISTS (SELECT * FROM #tmp t
                  WHERE o.id = t.id)
AND      o.type  IN ('TR', 'P' ,'U' ,'V')
AND  o.name NOT IN ( SELECT ti.name /*COLLATE*/ FROM #tmp ti
         WHERE NOT EXISTS (SELECT * FROM sysobjects oi
                           WHERE oi.id = ti.id))
ORDER BY Priority ASC

Let daarop: As jy'n nie-standaard kollasie in enige van jou databasisse, sal jy nodig het om te vervang /* COLLATE */ met jou databasis kollasie.dws. COLLATE Latin1_General_CI_AI

Omdat ons app het om te werk oor verskeie RDBMSs, ons winkel is ons skedule definisie in weergawe beheer met behulp van die databasis-neutraal Wringkrag formaat (XML).Ons het ook weergawe-beheer die verwysing data vir ons databasis in XML-formaat soos volg (waar "Verhouding" is een van die verwysing tafels):

  <Relationship RelationshipID="1" InternalName="Manager"/>
  <Relationship RelationshipID="2" InternalName="Delegate"/>
  etc.

Ons gebruik dan die huis-gegroei gereedskap te genereer die skedule op te gradeer en verwysing data op te gradeer skrifte wat nodig is om te gaan van X weergawe van die databasis na weergawe X + 1.

Ons het nie die stoor van die databasis skedule, ons stoor die veranderinge in die databasis.Wat ons doen, is die stoor van die skedule veranderings sodat ons bou'n verandering script vir enige weergawe van die databasis en pas dit aan ons kliënt se databasisse.Ek het'n databasis nut app wat versprei met ons belangrikste aansoek wat kan lees wat script en weet wat updates moet toegepas word.Dit het ook genoeg intelligensie om te verfris uitsig en gestoor prosedures as dit nodig is.

Ons het die behoefte om weergawe van ons SQL databasis na ons verhuis na'n x64 platform en ons ou weergawe gebreek het met die migrasie.Ons het'n C# aansoek wat gebruik word SQLDMO om die kaart uit al van die SQL voorwerpe na'n gids:

                Root
                    ServerName
                       DatabaseName
                          Schema Objects
                             Database Triggers*
                                .ddltrigger.sql
                             Functions
                                ..function.sql
                             Security
                                Roles
                                   Application Roles
                                      .approle.sql
                                   Database Roles
                                      .role.sql
                                Schemas*
                                   .schema.sql
                                Users
                                   .user.sql
                             Storage
                                Full Text Catalogs*
                                   .fulltext.sql
                             Stored Procedures
                                ..proc.sql
                             Synonyms*
                                .synonym.sql
                             Tables
                                ..table.sql
                                Constraints
                                   ...chkconst.sql
                                   ...defconst.sql
                                Indexes
                                   ...index.sql
                                Keys
                                   ...fkey.sql
                                   ...pkey.sql
                                   ...ukey.sql
                                Triggers
                                   ...trigger.sql
                             Types
                                User-defined Data Types
                                   ..uddt.sql
                                XML Schema Collections*
                                   ..xmlschema.sql
                             Views
                                ..view.sql
                                Indexes
                                   ...index.sql
                                Triggers
                                   ...trigger.sql

Die aansoek sal dan vergelyk met die nuut geskrewe weergawe van die weergawe gestoor word in SVN en as daar was verskille sou dit werk SVN.Ons het bepaal dat die bestuur van die proses een keer'n nag voldoende was, aangesien ons dit nie doen nie maak dat baie veranderinge aan SQL.Dit stel ons in staat om op te spoor veranderinge aan al die voorwerpe wat ons omgee plus dit stel ons in staat om die herbou van ons volle skedule in die geval van'n ernstige probleem.

Ek het hierdie inligting'n rukkie gelede, http://sqlschemasourcectrl.codeplex.com/ wat sal scan jou MSFT SQL db is so dikwels as wat jy wil en outomaties stort jou voorwerpe (tabelle, sienings, procs, funksies, sql-stellings) in SVN.Werk soos'n bom.Ek gebruik dit met Unfuddle (wat toelaat dat my om te kry waarskuwings op checkins)

Die tipiese oplossing is om te stort die databasis as wat nodig is en back-up van die lêers.

Afhangende van jou ontwikkeling platform, kan daar opensource plugins beskikbaar.Die rol van jou eie kode te doen, dit is gewoonlik redelik triviaal.

Let daarop:Jy kan wil om te rugsteun van die databasis stort in plaas van om dit in weergawe beheer.Die lêers kan kry vinnig in groot weergawe beheer, en veroorsaak dat jou hele bron beheer stelsel om stadig (ek is herinner aan'n CVS horror storie op die oomblik).

Ons het net begin om dit te gebruik Span Stigting Bediener.As jou databasis is medium grootte, dan visual studio het'n paar lekker projek integrasie met ingeboude in vergelyk, data vergelyk, databasis refactoring gereedskap, databasis toets raamwerk, en selfs data generasie gereedskap.

Maar, dat die model nie geskik is baie groot of derde party databasisse (wat enkripteer voorwerpe) baie goed.So, wat ons gedoen het is om net ons persoonlike voorwerpe.Visual Studio / Span stigting bediener werk baie goed vir dat.

TFS Databasis hoof boog.blog

ME TFS webwerf

Ek stem saam met ESV antwoord en vir die presiese rede waarom ek begin'n bietjie projek'n rukkie terug om jou te help in stand te hou databasis updates in'n baie eenvoudige lêer wat kan dan gehandhaaf word'n lang kant uit bron-kode.Dit kan maklik updates te ontwikkelaars sowel as UAT en Produksie.Die instrument werk op maar Sql Server en MySql.

Sommige projek kenmerke:

  • Laat skedule veranderings
  • Laat waarde boom bevolking
  • Kan afsonderlike toets data inserts vir bv.UAT
  • Laat opsie vir terugrol (nie outomatiese)
  • Handhaaf ondersteuning vir SQL server en Mysql
  • Het die vermoë om die invoer van jou bestaande databasis in weergawe beheer met'n eenvoudige opdrag(sql server net ...nog steeds besig om op mysql)

Die kode word aangebied op google-kode.Asseblief check uit Google kode vir'n paar meer inligting

http://code.google.com/p/databaseversioncontrol/

'n rukkie gelede het ek gevind'n VB bas module wat gebruik word DMO en VERSE voorwerpe te kry'n hele db geskryf af en in VSS.Ek het dit in'n VB Script en gepos word dit hier.Jy kan maklik uit die VERSE noem en gebruik die DMO dinge te genereer al die skrifte, en dan bel SVN uit dieselfde batch lêer wat noem die VBScript om te kyk vir hulle in?

Dave J

Ek is ook met behulp van'n weergawe in die databasis gestoor word via die uitgebreide databasis van eiendomme familie van die prosedures.My aansoek skrifte vir elke weergawe stap (dws.beweeg van 1.1 tot 1.2).Wanneer ontplooi, dit lyk op die huidige weergawe en dan loop die skrifte een vir een totdat dit bereik die laaste app weergawe.Daar is geen skrif wat het die man se finale weergawe, selfs sit op'n skoon DB beteken die ontplooi via'n reeks van die opgradering van die stappe.

Nou wat ek wil byvoeg is dat ek gesien het twee dae gelede het'n aanbieding oor die MS-kampus oor die nuwe en opkomende VS DB uitgawe.Die aanbieding is spesifiek gefokus op hierdie onderwerp en ek is geblaas uit van die water.Jy moet beslis check dit uit, die nuwe fasiliteite is gefokus op die behoud van skedule definisie in die T-SQL skrifte (Skep), 'n runtime delta enjin te vergelyk ontplooiing skedule met omskryf skedule en doen die delta Verander en die integrasie met die bron-kode integrasie, tot en insluitend MSBUILD deurlopende integrasie vir die outomatiese bou druppels.Die daling sal bevat'n nuwe lêer tipe, die .dbschema lêers, wat geneem kan word om die ontplooiing webwerf en'n opdrag lyn instrument kan doen om die werklike "delta" en hardloop die ontplooiing.Ek het'n blog inskrywing oor hierdie onderwerp met skakels na die VSDE downloads, jy moet check hulle uit: http://rusanu.com/2009/05/15/version-control-and-your-database/

Dit is'n baie ou vraag is egter baie probeer om op te los dit selfs nou.Al wat hulle hoef te doen, is om navorsing te doen oor Visual Studio Databasis Projekte.Sonder hierdie, enige databasis ontwikkeling lyk baie flou.Uit kode organisasie tot ontplooiing te weergawes, dit vergemaklik alles.

In my ervaring die oplossing is tweeledig:

  1. Wat jy nodig het om te hanteer veranderinge aan die ontwikkeling van die databasis wat is gedoen deur verskeie ontwikkelaars tydens die ontwikkeling.

  2. Wat jy nodig het om te hanteer databasis opgradering in kliënte webwerwe.

Ten einde te hanteer #1 wat jy nodig het'n sterk databasis diff/saamsmelt instrument.Die beste instrument moet in staat wees om uit te voer outomatiese saam te smelt so veel as moontlik, terwyl sodat jy op te los ongehanteerde konflikte met die hand.

Die ideale hulpmiddel moet hanteer saam te smelt bedrywighede deur gebruik te maak van'n 3-manier saam te smelt algoritme wat bring rekening hou met die veranderinge wat gemaak is in die S'N databasis en die MYN databasis, met betrekking tot die BASIS databasis.

Ek het'n kommersiële instrument wat bied'n handleiding saam te smelt ondersteuning vir SQLite databasis en ek is tans voeg ondersteuning vir 3-manier saam te smelt algoritme vir SQLite.Check dit uit by http://www.sqlitecompare.com

Ten einde te hanteer #2, sal jy nodig het om'n opgradering raamwerk in plek.

Die basiese idee is om die ontwikkeling van'n outomatiese opgradering raamwerk wat weet hoe om op te gradeer van'n bestaande SQL skedule aan die nuwer SQL skedule en kan bou'n opgradering pad vir elke bestaande DB installasie.

Check uit my artikel oor die onderwerp in http://www.codeproject.com/KB/database/sqlite_upgrade.aspx om'n algemene idee van wat ek praat.

Goeie Geluk

Liron Levi

Check uit DBGhost http://www.innovartis.co.uk/.Ek het wat gebruik word in'n outomatiese mode vir 2 jaar nou en dit werk baie goed.Dit laat ons DB bou om te gebeur baie soos'n Java of C bou gebeur, behalwe vir die databasis.Jy weet wat ek bedoel.

Ek sou raai die gebruik van vergelyking gereedskap om te improviseer'n weergawe beheer stelsel vir jou databasis.'n goeie alternatief is xSQL Skema Vergelyk en xSQL Data Vergelyk.

Nou, as jou doel is om slegs die databasis se skedule weergawe onder beheer kan jy net gebruik xSQL Skema Vergelyk te genereer xSQL Foto's van die skema en voeg dit lêers in jou weergawe beheer.As, om terug te keer of te verander om'n spesifieke weergawe net vergelyk met die huidige weergawe van die databasis met die foto vir die bestemming weergawe.

Helaas, as jy wil die data onder weergawe beheer, asook, kan jy gebruik xSQL Data Vergelyk te genereer verander skrifte vir jou databasis en voeg die .sql lêers in jou weergawe beheer.Jy kan dan uit te voer hierdie skrifte om terug te keer / werk om te enige weergawe wat jy wil.Hou in gedagte dat vir die "terugkeer" funksie wat jy nodig het om te genereer verander skrifte dat wanneer uitgevoer sal Weergawe 3 dieselfde as Weergawe 2 en vir die "update" funksie, wat jy nodig het om te genereer verander skrifte wat doen die teenoorgestelde.

Laastens, met'n paar basiese joernaal ontwikkeling vaardighede wat jy kan outomatiseer die hele proses deur gebruik te maak van die command line weergawes van xSQL Skema Vergelyk en xSQL Data Vergelyk

Disclaimer:Ek is verbind aan xSQL.

Gelisensieer onder: CC-BY-SA met toeskrywing
Nie verbonde aan StackOverflow
scroll top