Semua yang Anda sarankan adalah resep untuk rasa sakit dan migrasi yang gagal. Orang-orang akan mengoceh tentang betapa buruknya, lambatnya, dan tidak dapat diandalkannya PostgreSQL jika Anda mencoba menggunakan pendekatan ini. Ini akan menjadi langkah politik yang bagus oleh seseorang yang ingin mempertahankan SQL Server, tetapi bukan cara yang baik untuk bermigrasi ke PostgreSQL.
Ada pembungkus data asing baca/tulis yang datang untuk versi Pg yang lebih baru, tetapi awalnya hanya akan mendukung server PostgreSQL lainnya. Mendukung MS SQL akan jauh lebih sulit karena kebutuhan untuk menerjemahkan status sql dan pesan kesalahan, kondisi pencarian, dan banyak lagi, sehingga pembungkus apa pun tidak diragukan lagi akan sangat terbatas dan memiliki kinerja yang kurang bagus. Seperti yang Anda katakan, dukungan PLRT Asing terlalu kekanak-kanakan pada saat ini.
Ada begitu banyak hal yang hilang dengan mencoba melakukan hibrida seperti ini:
-
Tidak ada penegakan integritas kunci asing
-
Tipe data di setiap sisi mungkin tidak berperilaku 100% sama sehingga data bisa baik-baik saja di satu sisi dan tidak di sisi lain. Pikirkan stempel waktu/tanggal.
-
Penggabungan yang efisien akan membutuhkan pembungkus data asing yang sangat canggih - jadi yang biasanya terjadi adalah seluruh tabel akan diambil kemudian digabungkan secara lokal. Performanya akan buruk.
-
Menulis kueri menjadi mimpi buruk saat Anda melakukan apa pun selain tugas yang paling sepele. Nama fungsi berbeda, dll.
-
Anda kehilangan atau melemahkan banyak properti ACID dan/atau harus menggunakan komit dua fase, yang mengganggu kinerja.
Serius, jangan lakukan ini.
Menyinkronkan DB mungkin lebih buruk - kecuali jika itu salah satu cara, itu akan menjadi resep untuk pembaruan yang hilang, baris yang dihapus muncul kembali, dan lebih buruk. Sinkronisasi dua arah sangat keras.
Mulailah mempersiapkan aplikasi Anda untuk bergerak dengan membuatnya dapat berjalan di kedua server, tetapi hanya satu per satu. Setelah aplikasi siap dijalankan di Pg, mulailah melakukan beberapa pengujian beban dan pengujian keandalan dengan salinan data langsung yang dimigrasikan. lalu pikirkan tentang migrasi, tetapi miliki rencana tentang cara membalikkan pemindahan jika Anda menemukan masalah menit terakhir yang memaksa Anda untuk menunda.
Jika Anda menambahkan bagian yang sama sekali baru ke aplikasi, mungkin masuk akal untuk memilikinya di Pg jika mereka tidak berinteraksi dengan data lain di DB sama sekali. Itu sangat tidak mungkin, meskipun, dan sysadmin Anda akan tetap membenci Anda ketika Anda memberi tahu mereka bahwa Anda sekarang memerlukan snapshot atom di dua database terpisah...