
Saat mengembangkan aplikasi, terkadang perlu membandingkan dua database (misalnya, prod dan dev).
Ada sejumlah pendekatan untuk menyelesaikan masalah ini - mulai dari membuat file dump dengan struktur db dan kemudian menggunakan diff, hingga menggunakan solusi berbayar khusus seperti dbForge atau RedGate (ada daftar besar di sini ).
Compalex adalah salah satu solusi yang menggabungkan gratis dan mudah digunakan.
Compalex adalah sekumpulan skrip untuk membandingkan dua skema database dengan cepat. Untuk kemudahan penggunaan, semua ini dikemas dalam wadah Docker yang berisi skrip itu sendiri dan lingkungan yang dikonfigurasi untuk menghubungkan ke DB.
Untuk memulai penampung, Anda harus menentukan:
docker run -it -e DATABASE_DRIVER='mysql' \
-e DATABASE_ENCODING='utf8' \
-e SAMPLE_DATA_LENGTH='100' \
-e DATABASE_HOST='host.docker.internal' \
-e DATABASE_PORT='3306' \
-e DATABASE_NAME='compalex_dev' \
-e DATABASE_USER='root' \
-e DATABASE_PASSWORD='password' \
-e DATABASE_DESCRIPTION='Developer database' \
-e DATABASE_HOST_SECONDARY='host.docker.internal' \
-e DATABASE_PORT_SECONDARY='3306' \
-e DATABASE_NAME_SECONDARY='compalex_prod' \
-e DATABASE_USER_SECONDARY='root' \
-e DATABASE_PASSWORD_SECONDARY='password' \
-e DATABASE_DESCRIPTION_SECONDARY='Production database' \
-p 8000:8000 dlevsha/compalexDimana:
DATABASE_DRIVER - menggunakan driver untuk koneksi
mysql- untuk MySQLpgsql- untuk PostgreSQLdblib- untuk Microsoft SQL Serveroci- untuk Oracle
DATABASE_HOSTdan DATABASE_HOST_SECONDARY merupakan nama host atau IP untuk terhubung ke server pertama dan kedua.
Jika pangkalan diterapkan secara lokal ke localhost:
Untuk pengguna macOS dan Windows : gunakan host.docker.internalsebagai gantinya localhost, karena skrip yang berjalan di dalam penampung harus terhubung ke mesin host.
Linux: --network host ( "" ) DB localhost, ip a docker0 ip .
3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500
link/ether 02:42:e8:a9:95:58 brd ff:ff:ff:ff:ff:ff
inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
valid_lft forever preferred_lft foreverDB SSH
SSH DB - SSH localhost , .
:
ssh -L 1522:localhost:1521 [user name]@[remote host 1]
ssh -L 1523:localhost:1521 [user name]@[remote host 2] 1521 remote host 1 remote host 2 localhost 1522 1523 .
DB, application , DB, :
ssh -L 1522:[remote database server 1]:1521 [user name]@[remote application host 1]
ssh -L 1523:[remote database server 2]:1521 [user name]@[remote application host 2] DATABASE_HOST and DATABASE_HOST_SECONDARY ip, , .
- IP DB ( , ).
DATABASE_PORT and DATABASE_PORT_SECONDARY - .
:
3306- Mysql5432- PostgreSQL1433- MSSQL1521- Oracle
DATABASE_NAME and DATABASE_NAME_SECONDARY -
DATABASE_USER / DATABASE_PASSWORD and DATABASE_USER_SECONDARY / DATABASE_PASSWORD_SECONDARY -
DATABASE_DESCRIPTION and DATABASE_DESCRIPTION_SECONDARY - (, ).
, http://localhost:8000. -, , .

.
eLinks, HTML- .
, ( ) :
$ elinks http://localhost:8000:

( ).