473,748 Members | 2,887 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Best pratices to manage the "same logical" database on multipledatabas e engine types (postgreSQL, SLQServer, etc..)

Hi,
I'm going to work on an application that uses a postgreSQL database so
that it can uses SQLServer 2005.

I think I solved most problems on the programming side, but I still
have some doubts on the DB side regarding how to handle the creation
of the db schema on sqlserver and how to handle the every day dba
work.
1) should I try to use an ER tool like Embarcadero and have its
logical model be the master copy ? (i did some tests, it looks like i
have to massage the SQL produced a littel bit to have sqlserver l ike
it).
2) should I handle two separate sql scripts and update both of them
when something change, Additinally I have to produce "the diff"
scripts for upgrades, so that I should keep in sync 4 scripts.
3) Should I try to develop an XML based DDL syntax (like xml2dll) and
a parsing engine, so that I can handle just 2 scripts (create from
scracth and diff).
4) What should I use to move data back & forth ? SSIS (ex dts) or
something else ?

What do you suggest ?
thank you
Best Regards
Enrico Sabbadin
Jun 27 '08 #1
2 2164
On 22.05.2008 09:19, sa********@gmai l.com wrote:
Hi,
I'm going to work on an application that uses a postgreSQL database so
that it can uses SQLServer 2005.

I think I solved most problems on the programming side, but I still
have some doubts on the DB side regarding how to handle the creation
of the db schema on sqlserver and how to handle the every day dba
work.
1) should I try to use an ER tool like Embarcadero and have its
logical model be the master copy ? (i did some tests, it looks like i
have to massage the SQL produced a littel bit to have sqlserver l ike
it).
Alternative product that I like quite well: PowerDesigner.
2) should I handle two separate sql scripts and update both of them
when something change, Additinally I have to produce "the diff"
scripts for upgrades, so that I should keep in sync 4 scripts.
3) Should I try to develop an XML based DDL syntax (like xml2dll) and
a parsing engine, so that I can handle just 2 scripts (create from
scracth and diff).
4) What should I use to move data back & forth ? SSIS (ex dts) or
something else ?
5) How will you deal with schema migration?

All valid and good questions. Theoretically the single source solution
(3) looks like the best. Whether it is also optimal in practice depends
on a number of factors. For example, if your change frequency of the
schema is low and / or you need very DB specific features then it might
not be worthwhile to restrict yourself to some tool's DB specific output
and maintain schemes manually. On the other hand, if you need to
maintain a lot different DB products then it may pay off to use the
single source approach. But then you still have the schema migration
issue - unless you can afford to export all data, kill the old schema,
create the new schema and reimport (e.g. with small data volume).

My 0.02 EUR: be skeptical about tools that promise to easily manage a
schema for a number of database products.

Kind regards

robert
Jun 27 '08 #2
I don't think there is a single Best Practice because much depends on the
volatility of the schema, toolset and skillet.
1) should I try to use an ER tool like Embarcadero and have its
logical model be the master copy ? (i did some tests, it looks like i
have to massage the SQL produced a littel bit to have sqlserver l ike
it).
ER tools vary in their ability to generate scripts that require minimal
customization and some of the script gen features can be complex. If you
need to do a lot of work for your needs, consider evaluating other ER
products That said, diff scripts may require tweaking anyway to address
special considerations (e.g. large production data volumes).
2) should I handle two separate sql scripts and update both of them
when something change, Additinally I have to produce "the diff"
scripts for upgrades, so that I should keep in sync 4 scripts.
I'd keep 4 scripts (new and upgrade for each DBMS) and under source control.
Although the ER model can be considered the master, the model doesn't
mitigate configuration and release management Best Practices.
3) Should I try to develop an XML based DDL syntax (like xml2dll) and
a parsing engine, so that I can handle just 2 scripts (create from
scracth and diff).
IMHO, this should be last resort.
4) What should I use to move data back & forth ? SSIS (ex dts) or
something else ?
We use SSIS for general ETL processes. I've only had one SSIS project that
used PostgreSQL, though. I found the open source OLDB drivers buggy and
ended up using ODBC instead.

--
Hope this helps.

Dan Guzman
SQL Server MVP
http://weblogs.sqlteam.com/dang/

<sa********@gma il.comwrote in message
news:de******** *************** ***********@34g 2000hsh.googleg roups.com...
Hi,
I'm going to work on an application that uses a postgreSQL database so
that it can uses SQLServer 2005.

I think I solved most problems on the programming side, but I still
have some doubts on the DB side regarding how to handle the creation
of the db schema on sqlserver and how to handle the every day dba
work.
1) should I try to use an ER tool like Embarcadero and have its
logical model be the master copy ? (i did some tests, it looks like i
have to massage the SQL produced a littel bit to have sqlserver l ike
it).
2) should I handle two separate sql scripts and update both of them
when something change, Additinally I have to produce "the diff"
scripts for upgrades, so that I should keep in sync 4 scripts.
3) Should I try to develop an XML based DDL syntax (like xml2dll) and
a parsing engine, so that I can handle just 2 scripts (create from
scracth and diff).
4) What should I use to move data back & forth ? SSIS (ex dts) or
something else ?

What do you suggest ?
thank you
Best Regards
Enrico Sabbadin
Jun 27 '08 #3

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

6
1388
by: PaulR | last post by:
We have seen this a lot, but have just experienced the opposite to what we have always seen previously, so this has prompted me to ask a high level - why do we get this behaviour? If we re-write queries in the following pattern (simplified) select ... from table1 t1 inner join table2 t2 on (t1.pk = t2.fk) inner join table3 t3 on (t3.fk = t2.pk)
6
2173
by: bikkaran | last post by:
how to create a exact replica of a database. I have a database . There must be some structure of it. I want to recreate the same structure of the database on some another new server . Please help me. best regards bikash
1
1224
by: D.M | last post by:
I have two same databases. One DB is locaterd on personal computer in the office and the second one in on laptop computer and this DB is carring from town to town to collect data from all other towns. How ca I update first DB with data collected in laptop computer? What is the best way and plaease explain shortly that procedure. Thanks very much.
19
2361
by: Steve Jorgensen | last post by:
I've run across this issue several times of late, and I've never come up with a satisfactory answer to the best way to handle this schema issue. You have a large section of schema in which a subset of records across all tables is often considered a separate logical system, but sometimes may be treaded ar part of the global system, and there is not simply a 1-m-m... tree among the records in a logical database. Here's an example. A...
3
2371
by: Dmitri Shvetsov | last post by:
Hi, Maybe somebody knows why it's happening? I wrote a C# Windows Application working with the remote database through a DataSet. It works cool from my computer but when I gave this application to my friend who (and only him) has to work with the database tables to edit them he began receiving the following message every time when a new window opens:
3
1344
by: | last post by:
Is there a Regular Expression that matches either an integer + OR some letters + followed by a COMMA followed by some letters + That is, for example, either 12345 OR aBc,xyZ ???
6
3298
by: Sally Sally | last post by:
I wanted to dump the contents of one table to another (with a different name) within the same database. I am looking at pg_restore and it doesn't seem to have the option of specifying the name of the table we want to dump to, only the name we want to dump from. Does this mean I have to create the table and do an sql statement to copy the table? Is this the best way? Sally _________________________________________________________________...
7
1824
by: funktacular | last post by:
Hi- I have script that works fine when I run it from a server, but I need to be able to load the page and have it work from my hard drive. However, it seems the when the url changes from http://www.mydomain.com/default.html to file:///D:/folder_name/default.html that the browser thinks the frames are coming from different domains. I'm still pretty new to javascript and I am wondering if there is a way around this so I can load from my...
19
4137
by: glchin | last post by:
Does a compiler guarantee that the variable w below is placed on an eight-byte aligned address? void myFunction( long iFreq ) { const double w = two_pi * iFreq; ... ... }
0
8830
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it. First, let's disable language synchronization. With a Microsoft account, language settings sync across devices. To prevent any complications,...
0
9544
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. Here is my compilation command: g++-12 -std=c++20 -Wnarrowing bit_field.cpp Here is the code in...
0
9372
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth. The Art of Business Website Design Your website is...
1
9324
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For most users, this new feature is actually very convenient. If you want to control the update process,...
0
9247
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
0
6074
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one. At the time of converting from word file to html my equations which are in the word document file was convert into image. Globals.ThisAddIn.Application.ActiveDocument.Select();...
0
4874
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
2
2783
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.
3
2215
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating effective websites that not only look great but also perform exceptionally well. In this comprehensive...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.