Apakah mungkin untuk membandingkan dua database dengan struktur yang identik? Katakanlah saya memiliki dua database DB1 dan DB2 dan saya ingin memeriksa apakah ada perbedaan data di antara keduanya.
postgresql
schema-compare
sennin
sumber
sumber
Jawaban:
Ada beberapa alat di luar sana:
(perhatikan bahwa sebagian besar alat ini hanya dapat membandingkan struktur, tetapi tidak datanya)
Yang Gratis:
Komersial:
sumber
apgdiff
tidak mendukung tabel warisan dengan baik, dan pengecualian segera muncul ketika saya mencoba menggunakannya.WbSchemaDiff
bekerja dengan sangat baik, kejutan!Coba gunakan
pg_dump
pada kedua database dan lakukan diff file.sumber
pg_dump
tidak masalah untuk itu. Jika Anda melihat perbedaan yang signifikan denganpg_dump
Anda mungkin mencoba membandingkan hal-hal yang tidak dapat dibandingkan. Setidaknya untuk membandingkan PG dbs.psql -c '\x' -c 'SELECT... ORDER BY...'
bukanpg_dump
.Aplikasi gratis lainnya (yang hanya dapat membandingkan struktur, tetapi tidak datanya ):
DBeaver - Anda dapat memilih database, tabel, dll untuk dibandingkan satu sama lain
sumber
Saya telah mengevaluasi banyak alat dan menemukan solusi berikut:
Perbandingan skema :
Yang paling menarik adalah Liquibase, Persyas dan PgCodeKeeper:
( masalah ) Liquebase mengonversi:
SET DEFAULT nextval('myschema.name_id_seq'::regclass)
ke
Jadi ditolak untuk digunakan
( Masalah ) Persya berfungsi dengan baik sampai saya menambahkan beberapa skema tambahan dan itu mulai melempar:
Jadi saya telah menemukan PgCodeKeeper berfungsi dengan sempurna dan aktif (Anda dapat memeriksa rilis). Saya menggunakan perintah berikut:
Perbandingan data: Saya telah mencoba menggunakan Liquebase dan tidak berhasil, Anda dapat melihat langkah-langkah yang saya coba dalam pertanyaan saya yang belum terjawab tentang perbedaan data dari dua database dengan Liquebase
Jadi saya telah menemukan proyek lain SQL Workbench / J. Ini bekerja sangat bagus dan menghasilkan perbedaan nyata di sql. Saya menggunakan perintah berikut:
Kedua alat mendukung filtrasi objek. Ini sangat nyaman.
Migrasi
Dan akhirnya saya menggunakan Liquebase hanya untuk migrasi / pelacakan versi.
sumber
Saya sedang mengerjakan alat perbandingan komprehensif untuk Postgres. Ini akan gratis saat dalam versi beta.
PostgresCompare
Awalnya ini hanya perbandingan skema (DDL) tetapi kami mungkin akan memperluas ke data juga. Saya percaya ini adalah alat yang dibutuhkan banyak toko untuk berpindah dari RDBMS mereka saat ini tanpa harus juga mengubah cara kerja lingkungan pengembangan, operasi, dll.
sumber
Alat terbaik yang pernah saya lihat https://pythonhosted.org/Pyrseas/
Dapatkan dump dari database A dbtoyaml ...
Hasilkan migrasi dari A => B yamltodb ... [file dibuat pada langkah 1]
sumber
Saya juga mencari alat untuk membandingkan data dalam database (khususnya saya tertarik untuk membandingkan Redshift DB). Sejauh ini yang terbaik yang saya temukan adalah https://www.dbbest.com/products/database-compare-suite/#close . Sayangnya uji coba gratis berakhir setelah satu hari.
sumber
Saya membuat alat untuk membandingkan 2 database PostgreSQL langsung (bukan dump), data tabel, dan urutan. Hari-hari yang cukup awal tetapi mencapai apa yang saya inginkan, mungkin itu dapat membantu Anda juga.
https://github.com/dmarkey/pgdatadiff
sumber
Menurut pendapat saya Dbforge adalah alat yang paling kuat untuk membandingkan data di postgresql. Ini adalah produk dari perusahaan Devart. Anda dapat mengunduh di sini .
sumber