From cnighswonger@foundations.edu Fri Dec 16 20:41:55 2011 From: Chris Nighswonger To: koha-devel@lists.koha-community.org Subject: Re: [Koha-devel] [Koha] 3.6.1 updatedatabase.pl [was: Checkout fails] Date: Fri, 16 Dec 2011 14:41:32 -0500 Message-ID: In-Reply-To: <5.2.1.1.2.20111216131422.0705abb8@localhost> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============1243541286877444351==" --===============1243541286877444351== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Moving this to the devel list.... On Fri, Dec 16, 2011 at 1:24 PM, Paul wrote: > At 12:51 PM 12/16/2011 -0500, Chris Nighswonger wrote: > >> Hi Paul, >> > [snip] > > I see no reason why the errors you posted in this thread should/would >> affect the ability to put a server into production. >> > > Hi Chris, > > They don't -- it was just programmatical curiosity on my behalf (I have > this very old-fashioned foible about trying to understand what I do.) > > I'll help feed that old-fashioned "foible" since it will hopefully encourage you to jump into the development of Koha at some point. :-) Here is an explanation I sent to another dev: I'll help feed that old-fashioned "foible" since it will hopefully encourage you to jump into the development of Koha at some point. :-) It should probably still be SOP to check for the existence of tables/columns/etc. prior to adding them. mysqldump does a similar sort of thing by default, proceeding every "CREATE TABLE" with such as this: DROP TABLE IF EXISTS `foo`; We could do something like: UNLESS ( OR ) THEN We could even add a function which could be called to do this to make it even easier to do. Kind Regards, Chris --===============1243541286877444351== Content-Type: text/html Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="attachment.html" MIME-Version: 1.0 PGRpdiBjbGFzcz0iZ21haWxfcXVvdGUiPk1vdmluZyB0aGlzIHRvIHRoZSBkZXZlbCBsaXN0Li4u Ljxicj48YnI+T24gRnJpLCBEZWMgMTYsIDIwMTEgYXQgMToyNCBQTSwgUGF1bCA8c3BhbiBkaXI9 Imx0ciI+Jmx0OzxhIGhyZWY9Im1haWx0bzpwYXVsLmFAYWFuZGMub3JnIj5wYXVsLmFAYWFuZGMu b3JnPC9hPiZndDs8L3NwYW4+IHdyb3RlOjxicj48YmxvY2txdW90ZSBjbGFzcz0iZ21haWxfcXVv dGUiIHN0eWxlPSJtYXJnaW46MHB0IDBwdCAwcHQgMC44ZXg7Ym9yZGVyLWxlZnQ6MXB4IHNvbGlk IHJnYigyMDQsMjA0LDIwNCk7cGFkZGluZy1sZWZ0OjFleCI+CgpBdCAxMjo1MSBQTSAxMi8xNi8y MDExIC0wNTAwLCBDaHJpcyBOaWdoc3dvbmdlciB3cm90ZTo8YnI+CjxibG9ja3F1b3RlIGNsYXNz PSJnbWFpbF9xdW90ZSIgc3R5bGU9Im1hcmdpbjowcHQgMHB0IDBwdCAwLjhleDtib3JkZXItbGVm dDoxcHggc29saWQgcmdiKDIwNCwyMDQsMjA0KTtwYWRkaW5nLWxlZnQ6MWV4Ij4KSGkgUGF1bCw8 YnI+CjwvYmxvY2txdW90ZT4KW3NuaXBdPGRpdiBjbGFzcz0iaW0iPjxicj4KPGJsb2NrcXVvdGUg Y2xhc3M9ImdtYWlsX3F1b3RlIiBzdHlsZT0ibWFyZ2luOjBwdCAwcHQgMHB0IDAuOGV4O2JvcmRl ci1sZWZ0OjFweCBzb2xpZCByZ2IoMjA0LDIwNCwyMDQpO3BhZGRpbmctbGVmdDoxZXgiPgpJIHNl ZSBubyByZWFzb24gd2h5IHRoZSBlcnJvcnMgeW91IHBvc3RlZCBpbiB0aGlzIHRocmVhZCBzaG91 bGQvd291bGQgYWZmZWN0IHRoZSBhYmlsaXR5IHRvIHB1dCBhIHNlcnZlciBpbnRvIHByb2R1Y3Rp b24uPGJyPgo8L2Jsb2NrcXVvdGU+Cjxicj48L2Rpdj4KSGkgQ2hyaXMsPGJyPgo8YnI+ClRoZXkg ZG9uJiMzOTt0IC0tIGl0IHdhcyBqdXN0IHByb2dyYW1tYXRpY2FsIGN1cmlvc2l0eSBvbiBteSBi ZWhhbGYgKEkgaGF2ZSB0aGlzIHZlcnkgb2xkLWZhc2hpb25lZCBmb2libGUgYWJvdXQgdHJ5aW5n IHRvIHVuZGVyc3RhbmQgd2hhdCBJIGRvLik8YnI+PGJyPjwvYmxvY2txdW90ZT48ZGl2Pjxicj5J JiMzOTtsbCBoZWxwIGZlZWQgdGhhdCBvbGQtZmFzaGlvbmVkICZxdW90O2ZvaWJsZSZxdW90OyBz aW5jZSBpdCB3aWxsIGhvcGVmdWxseSAKZW5jb3VyYWdlIHlvdSB0byBqdW1wIGludG8gdGhlIGRl dmVsb3BtZW50IG9mIEtvaGEgYXQgc29tZSBwb2ludC4gOi0pPGJyPsKgPGJyPkhlcmUgaXMgYW4g ZXhwbGFuYXRpb24gSSBzZW50IHRvIGFub3RoZXIgZGV2Ojxicj48YnI+SSYjMzk7bGwgaGVscCBm ZWVkIHRoYXQgb2xkLWZhc2hpb25lZCAmcXVvdDtmb2libGUmcXVvdDsgc2luY2UgaXQgd2lsbCBo b3BlZnVsbHkgCmVuY291cmFnZSB5b3UgdG8ganVtcCBpbnRvIHRoZSBkZXZlbG9wbWVudCBvZiBL b2hhIGF0IHNvbWUgcG9pbnQuIDotKTxicj4KPGJyPiZsdDtzbmlwJmd0Ozxicj48YnI+SXQgc2hv dWxkIHByb2JhYmx5IHN0aWxsIGJlIFNPUCB0byBjaGVjayBmb3IgdGhlIGV4aXN0ZW5jZSBvZiAK dGFibGVzL2NvbHVtbnMvZXRjLiBwcmlvciB0byBhZGRpbmcgdGhlbS4gbXlzcWxkdW1wIGRvZXMg YSBzaW1pbGFyIHNvcnQgCm9mIHRoaW5nIGJ5IGRlZmF1bHQsIHByb2NlZWRpbmcgZXZlcnkgJnF1 b3Q7Q1JFQVRFIFRBQkxFJnF1b3Q7IHdpdGggc3VjaCBhcyB0aGlzOjxicj4KPGJyPkRST1AgVEFC TEUgSUYgRVhJU1RTIGBmb29gOzxicj48YnI+V2UgY291bGQgZG8gc29tZXRoaW5nIGxpa2U6PGJy Pjxicj5VTkxFU1MgKCZsdDt0YWJsZSZndDsgT1IgJmx0O2NvbHVtbiZndDspIFRIRU4gJmx0O3Vw ZGF0ZS1mb28mZ3Q7PGJyPjxicj5XZSBjb3VsZCBldmVuIGFkZCBhIGZ1bmN0aW9uIHdoaWNoIGNv dWxkIGJlIGNhbGxlZCB0byBkbyB0aGlzIHRvIG1ha2UgaXQgZXZlbiBlYXNpZXIgdG8gZG8uPGJy PgoKPGJyPktpbmQgUmVnYXJkcyw8YnI+Q2hyaXM8YnI+PC9kaXY+PC9kaXY+PGJyPgo= --===============1243541286877444351==-- From cnighswonger@foundations.edu Fri Dec 16 20:43:29 2011 From: Chris Nighswonger To: koha-devel@lists.koha-community.org Subject: Re: [Koha-devel] [Koha] 3.6.1 updatedatabase.pl [was: Checkout fails] Date: Fri, 16 Dec 2011 14:43:07 -0500 Message-ID: In-Reply-To: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============1155781603882192825==" --===============1155781603882192825== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Well, cut and paste strikes again... here it is with the missing portion.... On Fri, Dec 16, 2011 at 2:41 PM, Chris Nighswonger < cnighswonger@foundations.edu> wrote: > Moving this to the devel list.... > > > On Fri, Dec 16, 2011 at 1:24 PM, Paul wrote: > >> At 12:51 PM 12/16/2011 -0500, Chris Nighswonger wrote: >> >>> Hi Paul, >>> >> [snip] >> >> I see no reason why the errors you posted in this thread should/would >>> affect the ability to put a server into production. >>> >> >> Hi Chris, >> >> They don't -- it was just programmatical curiosity on my behalf (I have >> this very old-fashioned foible about trying to understand what I do.) >> >> > I'll help feed that old-fashioned "foible" since it will hopefully > encourage you to jump into the development of Koha at some point. :-) > > Here is an explanation I sent to another dev: > > The cause for these errors is duplicate SQL in updatedatabase.pl. Take > for example: > > > DBD::mysql::db do failed: Duplicate column name 'privacy' at > /home/koha/kohaclone/installer/data/mysql/updatedatabase.pl < > http://updatedatabase.pl> line 3997. > > This particular error is a result of the 'privacy' column being added at > line 2824: > > > http://git.koha-community.org/gitweb/?p=3Dkoha.git;a=3Dblob;f=3Dinstaller/d= ata/mysql/updatedatabase.pl;h=3D0063a750980757e4b240a7cbbe1d3a24f1ad2903;hb= =3DHEAD#l2824 > > So when we get to line 3997: > > > http://git.koha-community.org/gitweb/?p=3Dkoha.git;a=3Dblob;f=3Dinstaller/d= ata/mysql/updatedatabase.pl;h=3D0063a750980757e4b240a7cbbe1d3a24f1ad2903;hb= =3DHEAD#l3997 > > it is truly a duplicate as the error indicates. > > Without digging into all of the errors, I think this is true for most, if > not all of them. Some of this (iirc) was an attempt to fix out-of-sync > databases. If this was truly necessary, the later attempt to add a column > should have had code to check for the existence before attempting to add it. > > > > It should probably still be SOP to check for the existence of > tables/columns/etc. prior to adding them. mysqldump does a similar sort of > thing by default, proceeding every "CREATE TABLE" with such as this: > > DROP TABLE IF EXISTS `foo`; > > We could do something like: > > UNLESS (
OR ) THEN > > We could even add a function which could be called to do this to make it > even easier to do. > > Kind Regards, > Chris > > --===============1155781603882192825== Content-Type: text/html Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="attachment.html" MIME-Version: 1.0 V2VsbCwgY3V0IGFuZCBwYXN0ZSBzdHJpa2VzIGFnYWluLi4uIGhlcmUgaXQgaXMgd2l0aCB0aGUg bWlzc2luZyBwb3J0aW9uLi4uLjxicj4KPGJyPjxicj48ZGl2IGNsYXNzPSJnbWFpbF9xdW90ZSI+ T24gRnJpLCBEZWMgMTYsIDIwMTEgYXQgMjo0MSBQTSwgQ2hyaXMgTmlnaHN3b25nZXIgPHNwYW4g ZGlyPSJsdHIiPiZsdDs8YSBocmVmPSJtYWlsdG86Y25pZ2hzd29uZ2VyQGZvdW5kYXRpb25zLmVk dSI+Y25pZ2hzd29uZ2VyQGZvdW5kYXRpb25zLmVkdTwvYT4mZ3Q7PC9zcGFuPiB3cm90ZTo8YnI+ PGJsb2NrcXVvdGUgY2xhc3M9ImdtYWlsX3F1b3RlIiBzdHlsZT0ibWFyZ2luOjBwdCAwcHQgMHB0 IDAuOGV4O2JvcmRlci1sZWZ0OjFweCBzb2xpZCByZ2IoMjA0LDIwNCwyMDQpO3BhZGRpbmctbGVm dDoxZXgiPgoKPGRpdiBjbGFzcz0iZ21haWxfcXVvdGUiPk1vdmluZyB0aGlzIHRvIHRoZSBkZXZl bCBsaXN0Li4uLjxkaXYgY2xhc3M9ImltIj48YnI+PGJyPk9uIEZyaSwgRGVjIDE2LCAyMDExIGF0 IDE6MjQgUE0sIFBhdWwgPHNwYW4gZGlyPSJsdHIiPiZsdDs8YSBocmVmPSJtYWlsdG86cGF1bC5h QGFhbmRjLm9yZyIgdGFyZ2V0PSJfYmxhbmsiPnBhdWwuYUBhYW5kYy5vcmc8L2E+Jmd0Ozwvc3Bh bj4gd3JvdGU6PGJyPgoKPGJsb2NrcXVvdGUgY2xhc3M9ImdtYWlsX3F1b3RlIiBzdHlsZT0ibWFy Z2luOjBwdCAwcHQgMHB0IDAuOGV4O2JvcmRlci1sZWZ0OjFweCBzb2xpZCByZ2IoMjA0LDIwNCwy MDQpO3BhZGRpbmctbGVmdDoxZXgiPgpBdCAxMjo1MSBQTSAxMi8xNi8yMDExIC0wNTAwLCBDaHJp cyBOaWdoc3dvbmdlciB3cm90ZTo8YnI+CjxibG9ja3F1b3RlIGNsYXNzPSJnbWFpbF9xdW90ZSIg c3R5bGU9Im1hcmdpbjowcHQgMHB0IDBwdCAwLjhleDtib3JkZXItbGVmdDoxcHggc29saWQgcmdi KDIwNCwyMDQsMjA0KTtwYWRkaW5nLWxlZnQ6MWV4Ij4KSGkgUGF1bCw8YnI+CjwvYmxvY2txdW90 ZT4KW3NuaXBdPGRpdj48YnI+CjxibG9ja3F1b3RlIGNsYXNzPSJnbWFpbF9xdW90ZSIgc3R5bGU9 Im1hcmdpbjowcHQgMHB0IDBwdCAwLjhleDtib3JkZXItbGVmdDoxcHggc29saWQgcmdiKDIwNCwy MDQsMjA0KTtwYWRkaW5nLWxlZnQ6MWV4Ij4KSSBzZWUgbm8gcmVhc29uIHdoeSB0aGUgZXJyb3Jz IHlvdSBwb3N0ZWQgaW4gdGhpcyB0aHJlYWQgc2hvdWxkL3dvdWxkIGFmZmVjdCB0aGUgYWJpbGl0 eSB0byBwdXQgYSBzZXJ2ZXIgaW50byBwcm9kdWN0aW9uLjxicj4KPC9ibG9ja3F1b3RlPgo8YnI+ PC9kaXY+CkhpIENocmlzLDxicj4KPGJyPgpUaGV5IGRvbiYjMzk7dCAtLSBpdCB3YXMganVzdCBw cm9ncmFtbWF0aWNhbCBjdXJpb3NpdHkgb24gbXkgYmVoYWxmIChJIGhhdmUgdGhpcyB2ZXJ5IG9s ZC1mYXNoaW9uZWQgZm9pYmxlIGFib3V0IHRyeWluZyB0byB1bmRlcnN0YW5kIHdoYXQgSSBkby4p PGJyPjxicj48L2Jsb2NrcXVvdGU+PC9kaXY+PGRpdj48YnI+SSYjMzk7bGwgaGVscCBmZWVkIHRo YXQgb2xkLWZhc2hpb25lZCAmcXVvdDtmb2libGUmcXVvdDsgc2luY2UgaXQgd2lsbCBob3BlZnVs bHkgCmVuY291cmFnZSB5b3UgdG8ganVtcCBpbnRvIHRoZSBkZXZlbG9wbWVudCBvZiBLb2hhIGF0 IHNvbWUgcG9pbnQuIDotKTxicj7CoDxicj5IZXJlIGlzIGFuIGV4cGxhbmF0aW9uIEkgc2VudCB0 byBhbm90aGVyIGRldjo8YnI+PGJyPlRoZSBjYXVzZSBmb3IgdGhlc2UgZXJyb3JzIGlzIGR1cGxp Y2F0ZSBTUUwgaW4gPGEgaHJlZj0iaHR0cDovL3VwZGF0ZWRhdGFiYXNlLnBsLyIgdGFyZ2V0PSJf YmxhbmsiPnVwZGF0ZWRhdGFiYXNlLnBsPC9hPi4gVGFrZSBmb3IgZXhhbXBsZTo8ZGl2IGNsYXNz PSJpbSI+Cgo8YnI+PGJyPkRCRDo6bXlzcWw6OmRiIGRvIGZhaWxlZDogRHVwbGljYXRlIGNvbHVt biBuYW1lICYjMzk7cHJpdmFjeSYjMzk7IGF0IC9ob21lL2tvaGEva29oYWNsb25lL2luc3RhbGxl ci9kYXRhL215c3FsLzxhIGhyZWY9Imh0dHA6Ly91cGRhdGVkYXRhYmFzZS5wbC8iIHRhcmdldD0i X2JsYW5rIj51cGRhdGVkYXRhYmFzZS5wbDwvYT4gJmx0OzxhIGhyZWY9Imh0dHA6Ly91cGRhdGVk YXRhYmFzZS5wbC8iIHRhcmdldD0iX2JsYW5rIj5odHRwOi8vdXBkYXRlZGF0YWJhc2UucGw8L2E+ Jmd0OyBsaW5lIDM5OTcuPC9kaXY+Cgo8ZGl2Pgo8YnI+VGhpcyBwYXJ0aWN1bGFyIGVycm9yIGlz IGEgcmVzdWx0IG9mIHRoZSAmIzM5O3ByaXZhY3kmIzM5OyBjb2x1bW4gYmVpbmcgYWRkZWQgYXQg bGluZSAyODI0Ojxicj48YnI+PGEgaHJlZj0iaHR0cDovL2dpdC5rb2hhLWNvbW11bml0eS5vcmcv Z2l0d2ViLz9wPWtvaGEuZ2l0O2E9YmxvYjtmPWluc3RhbGxlci9kYXRhL215c3FsL3VwZGF0ZWRh dGFiYXNlLnBsO2g9MDA2M2E3NTA5ODA3NTdlNGIyNDBhN2NiYmUxZDNhMjRmMWFkMjkwMztoYj1I RUFEI2wyODI0IiB0YXJnZXQ9Il9ibGFuayI+aHR0cDovL2dpdC5rb2hhLWNvbW11bml0eS5vcmcv Z2l0d2ViLz9wPWtvaGEuZ2l0O2E9YmxvYjtmPWluc3RhbGxlci9kYXRhL215c3FsL3VwZGF0ZWRh dGFiYXNlLnBsO2g9MDA2M2E3NTA5ODA3NTdlNGIyNDBhN2NiYmUxZDNhMjRmMWFkMjkwMztoYj1I RUFEI2wyODI0PC9hPjxicj4KCgo8YnI+U28gd2hlbiB3ZSBnZXQgdG8gbGluZSAzOTk3Ojxicj48 YnI+PGEgaHJlZj0iaHR0cDovL2dpdC5rb2hhLWNvbW11bml0eS5vcmcvZ2l0d2ViLz9wPWtvaGEu Z2l0O2E9YmxvYjtmPWluc3RhbGxlci9kYXRhL215c3FsL3VwZGF0ZWRhdGFiYXNlLnBsO2g9MDA2 M2E3NTA5ODA3NTdlNGIyNDBhN2NiYmUxZDNhMjRmMWFkMjkwMztoYj1IRUFEI2wzOTk3IiB0YXJn ZXQ9Il9ibGFuayI+aHR0cDovL2dpdC5rb2hhLWNvbW11bml0eS5vcmcvZ2l0d2ViLz9wPWtvaGEu Z2l0O2E9YmxvYjtmPWluc3RhbGxlci9kYXRhL215c3FsL3VwZGF0ZWRhdGFiYXNlLnBsO2g9MDA2 M2E3NTA5ODA3NTdlNGIyNDBhN2NiYmUxZDNhMjRmMWFkMjkwMztoYj1IRUFEI2wzOTk3PC9hPjxi cj4KCgo8YnI+aXQgaXMgdHJ1bHkgYSBkdXBsaWNhdGUgYXMgdGhlIGVycm9yIGluZGljYXRlcy48 YnI+PC9kaXY+PGJyPldpdGhvdXQKIGRpZ2dpbmcgaW50byBhbGwgb2YgdGhlIGVycm9ycywgSSB0 aGluayB0aGlzIGlzIHRydWUgZm9yIG1vc3QsIGlmIG5vdCAKYWxsIG9mIHRoZW0uIFNvbWUgb2Yg dGhpcyAoaWlyYykgd2FzIGFuIGF0dGVtcHQgdG8gZml4IG91dC1vZi1zeW5jIApkYXRhYmFzZXMu IElmIHRoaXMgd2FzIHRydWx5IG5lY2Vzc2FyeSwgdGhlIGxhdGVyIGF0dGVtcHQgdG8gYWRkIGEg CmNvbHVtbiBzaG91bGQgaGF2ZSBoYWQgY29kZSB0byBjaGVjayBmb3IgdGhlIGV4aXN0ZW5jZSBi ZWZvcmUgYXR0ZW1wdGluZwogdG8gYWRkIGl0Ljxicj48L2Rpdj48L2Rpdj48L2Jsb2NrcXVvdGU+ PGRpdj7CoDwvZGl2PjxibG9ja3F1b3RlIGNsYXNzPSJnbWFpbF9xdW90ZSIgc3R5bGU9Im1hcmdp bjowcHQgMHB0IDBwdCAwLjhleDtib3JkZXItbGVmdDoxcHggc29saWQgcmdiKDIwNCwyMDQsMjA0 KTtwYWRkaW5nLWxlZnQ6MWV4Ij48ZGl2IGNsYXNzPSJnbWFpbF9xdW90ZSI+PGRpdj4mbHQ7c25p cCZndDs8YnI+PGJyPgoKSXQgc2hvdWxkIHByb2JhYmx5IHN0aWxsIGJlIFNPUCB0byBjaGVjayBm b3IgdGhlIGV4aXN0ZW5jZSBvZiAKdGFibGVzL2NvbHVtbnMvZXRjLiBwcmlvciB0byBhZGRpbmcg dGhlbS4gbXlzcWxkdW1wIGRvZXMgYSBzaW1pbGFyIHNvcnQgCm9mIHRoaW5nIGJ5IGRlZmF1bHQs IHByb2NlZWRpbmcgZXZlcnkgJnF1b3Q7Q1JFQVRFIFRBQkxFJnF1b3Q7IHdpdGggc3VjaCBhcyB0 aGlzOjxicj4KPGJyPkRST1AgVEFCTEUgSUYgRVhJU1RTIGBmb29gOzxicj48YnI+V2UgY291bGQg ZG8gc29tZXRoaW5nIGxpa2U6PGJyPjxicj5VTkxFU1MgKCZsdDt0YWJsZSZndDsgT1IgJmx0O2Nv bHVtbiZndDspIFRIRU4gJmx0O3VwZGF0ZS1mb28mZ3Q7PGJyPjxicj5XZSBjb3VsZCBldmVuIGFk ZCBhIGZ1bmN0aW9uIHdoaWNoIGNvdWxkIGJlIGNhbGxlZCB0byBkbyB0aGlzIHRvIG1ha2UgaXQg ZXZlbiBlYXNpZXIgdG8gZG8uPGJyPgoKCjxicj5LaW5kIFJlZ2FyZHMsPGJyPjxmb250IGNvbG9y PSIjODg4ODg4Ij5DaHJpczxicj48L2ZvbnQ+PC9kaXY+PC9kaXY+PGJyPgo8L2Jsb2NrcXVvdGU+ PC9kaXY+PGJyPgo= --===============1155781603882192825==--