The changes should be down at the db layer, right? I think that should be fine.
Is there a way to tell postgres to treat 0 like a 'false'? Perhaps with a db connection string property? Ben On Sun, Aug 28, 2011 at 5:42 AM, Saptarshi Purkayastha <[email protected]>wrote: > One of the big problems that I'm encountering at the moment for making > OpenMRS run on most database servers is with our assumption of the BOOLEAN > type. Because MySQL stores BOOLEAN as TINYINT(1), we have made the > assumption that BOOLEAN will be represented as 0 or 1. Thus, the column type > for (retired, voided etc) in liquibase was using smallint (to make it > ANSI-SQL :D) as the type and default as 0 (FALSE). This was fairly easy to > change in the liquibase xmls by a search-and-replace (but still looking up > all the columns) > > The bigger issue surrounding this assumption is in code, where we have made > voided=0 in queries or getInt() from ResultSet. These are fine for the MySQL > assumption, but doesn't work with other databases. This is a fairly big > change to do, with changes at many places in code... > > Are we ready?? > > --- > Regards, > Saptarshi PURKAYASTHA > > My Tech Blog: http://sunnytalkstech.blogspot.com > You Live by CHOICE, Not by CHANCE > > > On 18 August 2011 15:59, Ben Wolfe <[email protected]> wrote: > >> The funny thing is that the liquibase changeset files were used for the >> initial scripts was for database portability. If you can export them as >> standard sql files and run those just as easily as the liquibase ones, go >> for it. The tricky thing to solve would be how to get the progress bars to >> work in the initialization wizard. >> >> You can either change the datatypes to a generic ansi standard ones, or >> change to something that liquibase knows about and converts to each >> different datatype on the different dbms's correctly. >> >> Ben >> >> >> On Wed, Aug 17, 2011 at 10:47 PM, Saptarshi Purkayastha < >> [email protected]> wrote: >> >>> MySQL longtext is the same as the TEXT of postgresql... for the others we >>> have to make database specific options between the data types >>> tinyint to smallint in the liquibase-schema-only >>> there are many similar difference that are database specific and we have >>> to make database specific datatypes. >>> >>> I'm yet to go through all the changes required... but will make as these >>> come. But for datatypes that are incompatible, probably be database >>> specific. >>> Is that ok?? or we should move those to ANSI-standard ones only?? >>> >>> >>> --- >>> Regards, >>> Saptarshi PURKAYASTHA >>> >>> My Tech Blog: http://sunnytalkstech.blogspot.com >>> You Live by CHOICE, Not by CHANCE >>> >>> >>> On 18 August 2011 00:48, Darius Jazayeri <[email protected]>wrote: >>> >>>> Hi Saptarshi, >>>> >>>> In principle I'm fine with these, but let's get at the specifics of >>>> datatypes. >>>> >>>> We probably use the mysql text, mediumtext, and longtext types a lot, >>>> because they're really usefully-sized datatypes. What will we replace those >>>> with? >>>> >>>> What other datatypes are you expecting to change? >>>> >>>> -Darius >>>> >>>> On Wed, Aug 17, 2011 at 11:25 AM, Saptarshi Purkayastha < >>>> [email protected]> wrote: >>>> >>>>> Hi, >>>>> >>>>> While we were recently discussing that OpenMRS should run on multiple >>>>> database servers, I started working on Support Multiple Databases in >>>>> OpenMRS Installation and >>>>> Update<https://tickets.openmrs.org/browse/TRUNK-1925> >>>>> . >>>>> There are some of the following broad changes that need to be made the >>>>> the liquibase xml so that we can install OpenMRS on different databases >>>>> (target MySQL, Postgres, MsSQL... and may be later Oracle). >>>>> >>>>> 1.) Change datatypes and create tables that are compatible with all the >>>>> databases (directly for compatible types or database specific for >>>>> non-compatible types) >>>>> 2.) Remove precision from many columns which are not compatible across >>>>> all those database servers >>>>> 3.) Divide a larger changeset into smaller changeset so that they can >>>>> be done commonly (by changing syntax) across multiple database servers. >>>>> 4.) Due to move to liquibase 2.0, all checksums for changesets have >>>>> been NULL'd and then changed to the new format. This should happen >>>>> automatically, but if anyone depends on these checksums, then you should >>>>> reply to this email :) >>>>> >>>>> We may also have to change if anywhere non-ANSI syntax or MySQL-syntax >>>>> has been used in the DAO. I haven't reached that far to tell how many such >>>>> instances exist, but I hope there aren't many such places >>>>> >>>>> What do other developers think about these changes? Any suggestions on >>>>> the way?? Anything that u think should be avoided or done?? These are >>>>> fairly >>>>> large changes and may result in incompatible checksums for already run >>>>> changesets. >>>>> >>>>> >>>>> PS: On a sidenote, I would like to highlight that for new installations >>>>> it is silly that we are doing changesets based installations. While the >>>>> world has moved to image based deployments for OS and large-software >>>>> packages, we did the reverse and moved to changesets based installations. >>>>> Upgrades are easier through changesets, but for new installations they are >>>>> lengthy and boring. I would like to propose the for new installations, >>>>> just >>>>> an sqldump deploy is easy and fast, while keeping to changesets for >>>>> upgrades. >>>>> >>>>> --- >>>>> Regards, >>>>> Saptarshi PURKAYASTHA >>>>> >>>>> My Tech Blog: http://sunnytalkstech.blogspot.com >>>>> You Live by CHOICE, Not by CHANCE >>>>> ------------------------------ >>>>> Click here to >>>>> unsubscribe<[email protected]?body=SIGNOFF%20openmrs-devel-l>from >>>>> OpenMRS Developers' mailing list >>>> >>>> >>>> >>> ------------------------------ >>> Click here to >>> unsubscribe<[email protected]?body=SIGNOFF%20openmrs-devel-l>from >>> OpenMRS Developers' mailing list >>> >> >> > ------------------------------ > Click here to > unsubscribe<[email protected]?body=SIGNOFF%20openmrs-devel-l>from > OpenMRS Developers' mailing list > _________________________________________ To unsubscribe from OpenMRS Developers' mailing list, send an e-mail to [email protected] with "SIGNOFF openmrs-devel-l" in the body (not the subject) of your e-mail. [mailto:[email protected]?body=SIGNOFF%20openmrs-devel-l]

