Re: How do you version your database?
Arik Baratz <[email protected]> Sun, 8 May 2011 21:50:59 +1000
| Newsgroups | gmane.culture.hackers.israel |
|---|---|
| Message-ID | <[email protected]> |
--00248c0eefa251e72404a2c2576f Content-Type: text/plain; charset=UTF-8 On Sat, May 7, 2011 at 8:30 PM, Amit Aronovitch <[email protected]>wrote: > > OK for the schema, but what about the actual data? > > Our script loaded the data as well :) If you start from a new database and run the script you would end up with the up-to-date schema loaded with all of the default values etc. All this was maintained by our DBA. Maybe it is not the most efficient way to do it but it worked for us. > You need a script for upgrading the data, at least from each production > release to the next one. And given a db-dump, you should be able to know > which version it belongs to, so you know which script to run. > I think it would be best to store some date/version stamp in some table, so > you'd never lose track of which schema/code is relevant for the data (once > you have that, you can automate and have the upgrade-scripts use this > stamp). > I think what you are talking about is different - a web application or something similar that holds production data. What I was referring to was a product that was using a database and the programming environments that we created for that. We had no need to version live data on our database. -- Arik --00248c0eefa251e72404a2c2576f Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/htm= l4/strict.dtd"> <html> <head> </head> <body style=3D"background-color: #fff;"> <span style=3D"display:none"> </span> <!--~-|**|PrettyHtmlStartT|**|-~--> <div id=3D"ygrp-mlmsg" style=3D"position:relative;"> <div id=3D"ygrp-msg" style=3D"z-index: 1;"> <!--~-|**|PrettyHtmlEndT|**|-~--> <div id=3D"ygrp-text" > =20=20=20=20=20=20 =20=20=20=20=20=20 <p><div dir=3D"ltr"><br><br><div class=3D"gmail_quote">On Sat, May 7,= 2011 at 8:30 PM, Amit Aronovitch <span dir=3D"ltr"><<a href=3D"mailto:a= [email protected]">[email protected]</a>></span> wrote:<br><blockqu= ote class=3D"gmail_quote" style=3D"border-left:1px #ccc solid;"> =20=20=20=20=20=20=20=20 <div><div dir=3D"ltr"><div class=3D"gmail_quote"><div>=C2=A0<br>OK for the = schema, but what about the actual data?<br><br></div></div></div></div></bl= ockquote><div><br></div><div>Our script loaded the data as well :) If you s= tart from a new database and run the script you would end up with the up-to= -date schema loaded with all of the default values etc. All this was mainta= ined by our DBA.</div> <div><br></div><div>Maybe it is not the most efficient way to do it but it = worked for us.</div><div>=C2=A0</div><blockquote class=3D"gmail_quote" styl= e=3D"border-left:1px #ccc solid;"><div><div dir=3D"ltr"> <div class=3D"gmail_quote"><div>You need a script for upgrading the data, a= t least from each production release to the next one. And given a db-dump, = you should be able to know which version it belongs to, so you know which s= cript to run.<br> I think it would be best to store some date/version stamp in some table, so= you'd never lose track of which schema/code is relevant for the data (= once you have that, you can automate and have the upgrade-scripts use this = stamp).<br> </div></div></div></div></blockquote><div><br></div><div><br></div><div>I t= hink what you are talking about is different - a web application or somethi= ng similar that holds production data.</div><div><br></div><div>What I was = referring to was a product that was using a database and the programming en= vironments that we created for that. We had no need to version live data on= our database.</div> <div><br></div><div>-- Arik</div></div></div> </p> </div> =20=20=20=20=20 <!--~-|**|PrettyHtmlStart|**|-~--> <div style=3D"color: #fff; height: 0;">__._,_.___</div> =20=20=20=20=20=20=20=20 =20=20 =20=20=20 <div id=3D"ygrp-actbar" style=3D"clear: both; margin-bottom: 10px; whit= e-space: nowrap; color: #666; padding-top: 15px;"> <div> <a href=3D"mailto:[email protected]?subject=3DRe%3A%20%5Bhacker= s-il%5D%20How%20do%20you%20version%20your%20database%3F" style=3D"margin-ri= ght: 0; padding-right: 0;"> Reply to <span style=3D"font-weight: 700;">sender</span></a> | <a href=3D"mailto:[email protected]?subject=3DRe%3A%20%5Bh= ackers-il%5D%20How%20do%20you%20version%20your%20database%3F"> Reply to <span style=3D"font-weight: 700;">group</span></a> | <a href=3D"http://groups.yahoo.com/group/hackers-il/post;_ylc=3D= X3oDMTJwMHJ1Z2pjBF9TAzk3MzU5NzE0BGdycElkAzE4NTczMzIEZ3Jwc3BJZAMxNzA1MDA2NzY= 0BG1zZ0lkAzUxNTkEc2VjA2Z0cgRzbGsDcnBseQRzdGltZQMxMzA0ODU1NDg4?act=3Dreply&m= essageNum=3D5159">Reply <span style=3D"font-weight: 700;">via web post</spa= n></a> | <a href=3D"http://groups.yahoo.com/group/hackers-il/post;_ylc= =3DX3oDMTJlY2g1cGk1BF9TAzk3MzU5NzE0BGdycElkAzE4NTczMzIEZ3Jwc3BJZAMxNzA1MDA2= NzY0BHNlYwNmdHIEc2xrA250cGMEc3RpbWUDMTMwNDg1NTQ4OA--" style=3D"font-weight:= 700;">Start a New Topic</a> </div> <a href=3D"http://groups.yahoo.com/group/hackers-il/message= /5156;_ylc=3DX3oDMTM0YzhhMmhnBF9TAzk3MzU5NzE0BGdycElkAzE4NTczMzIEZ3Jwc3BJZA= MxNzA1MDA2NzY0BG1zZ0lkAzUxNTkEc2VjA2Z0cgRzbGsDdnRwYwRzdGltZQMxMzA0ODU1NDg4B= HRwY0lkAzUxNTY-">Messages in this topic</a> (<span style=3D"font-weight: 700;">4</span>) </div>=20 <!------- Start Nav Bar ------> <!-- |**|begin egp html banner|**| --> <div id=3D"ygrp-vital" style=3D"background-color: #e0ecee; font-family: Ver= dana; font-size: 10px; margin-bottom: 10px; padding: 10px;"> <span id=3D"vithd" style=3D"font-weight: bold; color: #333; text-tran= sform: uppercase; ">Recent Activity:</span> <ul style=3D"list-style-type: none; margin: 0; padding: 0; display: inl= ine;"> <li style=3D"border-right: 1px solid #000; font-weight: 700; di= splay: inline; padding: 0 5px; margin-left: 0;"> <span class=3D"cat"><a href=3D"http://groups.yahoo.com/group/hackers-= il/members;_ylc=3DX3oDMTJmZmZybGIwBF9TAzk3MzU5NzE0BGdycElkAzE4NTczMzIEZ3Jwc= 3BJZAMxNzA1MDA2NzY0BHNlYwN2dGwEc2xrA3ZtYnJzBHN0aW1lAzEzMDQ4NTU0ODc-?o=3D6" = style=3D"text-decoration: none;">New Members</a></span> <span class=3D"ct" style=3D"color: #ff7900;">1</span> </li> </ul> =20=20=20=20 <div style=3D"clear: both; padding-top: 2px; color: #1e66ae;"> <a href=3D"http://groups.yahoo.com/group/hackers-il;_ylc=3DX3oDMTJlbzd0= cmZmBF9TAzk3MzU5NzE0BGdycElkAzE4NTczMzIEZ3Jwc3BJZAMxNzA1MDA2NzY0BHNlYwN2dGw= Ec2xrA3ZnaHAEc3RpbWUDMTMwNDg1NTQ4Nw--" style=3D"text-decoration: none;">Vis= it Your Group</a> </div> </div> <div id=3D"ygrp-mkp" style=3D"border: 1px solid #d8d8d8; clea= r: both; float: left; font-family: Arial; margin: 5px 0 10px 0; padding: 0 = 10px;"> <div id=3D"hd" style=3D"color: #628c2a; font-size: 85%; font-weight: = 700; line-height: 122%; margin: 10px 0;">MARKETPLACE</div> <div id=3D"ads" style=3D"margin-bottom: 10px;"> <div class=3D"ad" style=3D"color: #628C2A; font-family: A= rial; font-weight: 700; padding: 0 0;"> <p><a href=3D"http://global.ard.yahoo.com/SIG=3D15o738nnn/M=3D4= 93064.14543977.14365476.10835568/D=3Dgroups/S=3D1705006764:MKP1/Y=3DYAHOO/E= XP=3D1304862688/L=3D824fde44-7969-11e0-b2a3-63dd935be580/B=3DFr9mL2KImng-/J= =3D1304855488645738/K=3DsEBLLCQwX8GvyDKda94BrA/A=3D6078812/R=3D0/SIG=3D114a= e4ln1/*http://dogandcatanswers.yahoo.com/">Get great advice about dogs and = cats. Visit the Dog & Cat Answers Center.</a></p><script language=3Djavasc= ript> if(window.yzq_d=3D=3Dnull)window.yzq_d=3Dnew Object(); window.yzq_d['Fr9mL2KImng-']=3D'&U=3D13crjbfhj%2fN%3dFr9mL2KImng-%2fC%3d493= 064.14543977.14365476.10835568%2fD%3dMKP1%2fB%3d6078812%2fV%3d1'; </script><noscript><img width=3D1 height=3D1 alt=3D"" src=3D"http://us.bc.y= ahoo.com/b?P=3D824fde44-7969-11e0-b2a3-63dd935be580&T=3D1d9midkdp%2fX%3d130= 4855488%2fE%3d1705006764%2fR%3dgroups%2fK%3d5%2fV%3d2.1%2fW%3dH%2fY%3dYAHOO= %2fF%3d4175684580%2fH%3dY29udGVudD0iR287UG9kY2FzdHM7V2Vic2l0ZV9TZXJ2aWNlczt= XaWRnZXRzO1lhaG9vX1NlYXJjaF9NYXJrZXRpbmc7RmxpY2tyO0JyaWVmY2FzZTtGaW5hbmNlO0= Jvb2ttYXJrO01vYmlsZTsiIGRpc2FibGVzaHVmZmxpbmc9IjEiIHNlcnZlSWQ9IjgyNGZkZTQ0L= Tc5NjktMTFlMC1iMmEzLTYzZGQ5MzViZTU4MCIgc2l0ZUlkPSI0NDUyNTUxIiB0U3RtcD0iMTMw= NDg1NTQ4ODU5MTc3NyIg%2fQ%3d-1%2fS%3d1%2fJ%3d3F5EC442&U=3D13crjbfhj%2fN%3dFr= 9mL2KImng-%2fC%3d493064.14543977.14365476.10835568%2fD%3dMKP1%2fB%3d6078812= %2fV%3d1"></noscript> </div> <div class=3D"ad" style=3D"color: #628C2A= ; font-family: Arial; font-weight: 700; padding: 0 0;"> <hr style=3D"border: 1px solid #d8d8d8;"> <p><a href=3D"http://global.ard.yahoo.com/SIG=3D15o= o362m3/M=3D493064.14543979.14365478.13298430/D=3Dgroups/S=3D1705006764:MKP1= /Y=3DYAHOO/EXP=3D1304862688/L=3D824fde44-7969-11e0-b2a3-63dd935be580/B=3DFb= 9mL2KImng-/J=3D1304855488645738/K=3DsEBLLCQwX8GvyDKda94BrA/A=3D6060255/R=3D= 0/SIG=3D1194m4keh/*http://us.toolbar.yahoo.com/?.cpdl=3Dgrpj">Stay on top o= f your group activity without leaving the page you're on - Get the Yahoo! T= oolbar now.</a></p> <script language=3Djavascript> if(window.yzq_d=3D=3Dnull)window.yzq_d=3Dnew Object(); window.yzq_d['Fb9mL2KImng-']=3D'&U=3D13c3uorve%2fN%3dFb9mL2KImng-%2fC%3d493= 064.14543979.14365478.13298430%2fD%3dMKP1%2fB%3d6060255%2fV%3d1'; </script><noscript><img width=3D1 height=3D1 alt=3D"" src=3D"http://us.bc.y= ahoo.com/b?P=3D824fde44-7969-11e0-b2a3-63dd935be580&T=3D1d9slsr3t%2fX%3d130= 4855488%2fE%3d1705006764%2fR%3dgroups%2fK%3d5%2fV%3d2.1%2fW%3dH%2fY%3dYAHOO= %2fF%3d1609033993%2fH%3dY29udGVudD0iR287UG9kY2FzdHM7V2Vic2l0ZV9TZXJ2aWNlczt= XaWRnZXRzO1lhaG9vX1NlYXJjaF9NYXJrZXRpbmc7RmxpY2tyO0JyaWVmY2FzZTtGaW5hbmNlO0= Jvb2ttYXJrO01vYmlsZTsiIGRpc2FibGVzaHVmZmxpbmc9IjEiIHNlcnZlSWQ9IjgyNGZkZTQ0L= Tc5NjktMTFlMC1iMmEzLTYzZGQ5MzViZTU4MCIgc2l0ZUlkPSI0NDUyNTUxIiB0U3RtcD0iMTMw= NDg1NTQ4ODU5MTc3NyIg%2fQ%3d-1%2fS%3d1%2fJ%3d3F5EC442&U=3D13c3uorve%2fN%3dFb= 9mL2KImng-%2fC%3d493064.14543979.14365478.13298430%2fD%3dMKP1%2fB%3d6060255= %2fV%3d1"></noscript> </div> </div> </div> =20=20 <div id=3D"ft" style=3D"font-family: Arial; font-size: 11px; margin-top: 5p= x; padding: 0 2px 0 0; clear: both;"> <a href=3D"http://groups.yahoo.com/;_ylc=3DX3oDMTJkYWw5dDhsBF9TAzk3NDc2NT= kwBGdycElkAzE4NTczMzIEZ3Jwc3BJZAMxNzA1MDA2NzY0BHNlYwNmdHIEc2xrA2dmcARzdGltZ= QMxMzA0ODU1NDg4" style=3D"float: left;"><img src=3D"http://l.yimg.com/a/i/u= s/yg/logo/us.gif" height=3D"15" width=3D"137" alt=3D"Yahoo! Groups" style= =3D"border: 0;"/></a> <div style=3D"color: #747575; float: right;">Switch to: <a href=3D"mailto= :[email protected]?subject=3DChange Delivery Format: T= raditional" style=3D"text-decoration: none;">Text-Only</a>, <a href=3D"mail= to:[email protected]?subject=3DEmail Delivery: Digest" clas= s=3D"margin-rt" style=3D"text-decoration: none;">Daily Digest</a> • <a= href=3D"mailto:[email protected]?subject=3DUnsubscrib= e" style=3D"text-decoration: none;">Unsubscribe</a> • <a href=3D"http:= //docs.yahoo.com/info/terms/" style=3D"text-decoration: none;">Terms of Use= </a></div> </div> <!-- |**|end egp html banner|**| --> </div> <!-- ygrp-msg --> <!-- Sponsor --> <!-- |**|begin egp html banner|**| --> <div id=3D"ygrp-sponsor" style=3D"width:160px; float:right; clear:none; m= argin:0 0 25px 0; background: #fff;"> <!-- Start Recommendations --> <div id=3D"ygrp-reco"> </div> <!-- End Recommendations --> </div> <!-- |**|end egp html banner|**| --> <div style=3D"clear:both; color: #FFF; font-size:1px;">.</div> </div> <img src=3D"http://geo.yahoo.com/serv?s=3D97359714/grpId=3D1857332/grpspI= d=3D1705006764/msgId=3D5159/stime=3D1304855488/nc1=3D3848642/nc2=3D4507179/= nc3=3D5898816" width=3D"1" height=3D"1"> <br> <div style=3D"color: #fff; height: 0;">__,_._,___</div> <!--~-|**|PrettyHtmlEnd|**|-~--> </body> <!--~-|**|PrettyHtmlStart|**|-~--> <head> <style type=3D"text/css"> <!-- #ygrp-mkp { border: 1px solid #d8d8d8; font-family: Arial; margin: 10px 0; padding: 0 10px; } #ygrp-mkp hr { border: 1px solid #d8d8d8; } #ygrp-mkp #hd { color: #628c2a; font-size: 85%; font-weight: 700; line-height: 122%; margin: 10px 0; } #ygrp-mkp #ads { margin-bottom: 10px; } #ygrp-mkp .ad { padding: 0 0; } #ygrp-mkp .ad p { margin: 0; } #ygrp-mkp .ad a { color: #0000ff; text-decoration: none; } #ygrp-sponsor #ygrp-lc { font-family: Arial; } #ygrp-sponsor #ygrp-lc #hd { margin: 10px 0px; font-weight: 700; font-size: 78%; line-height: 122%; } #ygrp-sponsor #ygrp-lc .ad { margin-bottom: 10px; padding: 0 0; } a { color: #1e66ae; } #actions { font-family: Verdana; font-size: 11px; padding: 10px 0; } #activity { background-color: #e0ecee; float: left; font-family: Verdana; font-size: 10px; padding: 10px; } #activity span { font-weight: 700; } #activity span:first-child { text-transform: uppercase; } #activity span a { color: #5085b6; text-decoration: none; } #activity span span { color: #ff7900; } #activity span .underline { text-decoration: underline; } .attach { clear: both; display: table; font-family: Arial; font-size: 12px; padding: 10px 0; width: 400px; } .attach div a { text-decoration: none; } .attach img { border: none; padding-right: 5px; } .attach label { display: block; margin-bottom: 5px; } .attach label a { text-decoration: none; } =20=20 blockquote { margin: 0 0 0 4px; } .bold { font-family: Arial; font-size: 13px; font-weight: 700; } .bold a { text-decoration: none; } dd.last p a { font-family: Verdana; font-weight: 700; } dd.last p span { margin-right: 10px; font-family: Verdana; font-weight: 700; } dd.last p span.yshortcuts { margin-right: 0; } div.attach-table div div a { text-decoration: none; } div.attach-table { width: 400px; } div.file-title a, div.file-title a:active, div.file-title a:hover, div.fi= le-title a:visited { text-decoration: none; } div.photo-title a, div.photo-title a:active, div.photo-title a:hover, div= .photo-title a:visited { text-decoration: none; } div#ygrp-mlmsg #ygrp-msg p a span.yshortcuts { font-family: Verdana; font-size: 10px; font-weight: normal; } .green { color: #628c2a; } .MsoNormal { margin: 0 0 0 0; } o { font-size: 0; } #photos div { float: left; width: 72px; } #photos div div { border: 1px solid #666666; height: 62px; overflow: hidden; width: 62px; } #photos div label { color: #666666; font-size: 10px; overflow: hidden; text-align: center; white-space: nowrap; width: 64px; } #reco-category { font-size: 77%; } #reco-desc { font-size: 77%; } .replbq { margin: 4px; } #ygrp-actbar div a:first-child { /* border-right: 0px solid #000;*/ margin-right: 2px; padding-right: 5px; } #ygrp-mlmsg { font-size: 13px; font-family: Arial, helvetica,clean, sans-serif; *font-size: small; *font: x-small; } #ygrp-mlmsg table { font-size: inherit; font: 100%; } #ygrp-mlmsg select, input, textarea { font: 99% Arial, Helvetica, clean, sans-serif; } #ygrp-mlmsg pre, code { font:115% monospace; *font-size:100%; } #ygrp-mlmsg * { line-height: 1.22em; } #ygrp-mlmsg #logo { padding-bottom: 10px; } #ygrp-mlmsg a { color: #1E66AE; } #ygrp-msg p a { font-family: Verdana; } #ygrp-msg p#attach-count span { color: #1E66AE; font-weight: 700; } #ygrp-reco #reco-head { color: #ff7900; font-weight: 700; } #ygrp-reco { margin-bottom: 20px; padding: 0px; } #ygrp-sponsor #ov li a { font-size: 130%; text-decoration: none; } #ygrp-sponsor #ov li { font-size: 77%; list-style-type: square; padding: 6px 0; }=20 #ygrp-sponsor #ov ul { margin: 0; padding: 0 0 0 8px; } #ygrp-text { font-family: Georgia; } #ygrp-text p { margin: 0 0 1em 0; } #ygrp-text tt { font-size: 120%; } #ygrp-vital ul li:last-child { border-right: none !important;=20 }=20 --> </style> </head> <!--~-|**|PrettyHtmlEnd|**|-~--> </html> <!-- end group email --> --00248c0eefa251e72404a2c2576f--