مقارنة مخططات قاعدتي البيانات

عند تطوير التطبيقات ، من الضروري أحيانًا مقارنة قاعدتي بيانات (على سبيل المثال ، prod و dev).

هناك عدد من الأساليب لحل هذه المشكلة - من إنشاء ملف تفريغ بهيكل db ثم استخدام فرق ، إلى استخدام حلول مدفوعة متخصصة مثل dbForge أو RedGate (توجد قائمة كبيرة هنا ).

Compalex هو أحد هذه الحلول التي تجمع بين مجانية وسهلة الاستخدام.

Compalex عبارة عن مجموعة من البرامج النصية للمقارنة السريعة بين مخططي قاعدة البيانات. لسهولة الاستخدام ، يتم تجميع كل هذا في حاوية Docker ، والتي تحتوي على كل من البرامج النصية نفسها والبيئة المكونة للاتصال بقاعدة البيانات.

لبدء الحاوية ، يجب عليك تحديد:

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/compalex

أين:

DATABASE_DRIVER - سائق مستخدم للاتصال

  • mysql - لـ MySQL

  • pgsql - لـ PostgreSQL

  • dblib - لـ Microsoft SQL Server

  • oci - لشركة Oracle

DATABASE_HOSTو DATABASE_HOST_SECONDARY هو اسم المضيف أو IP للاتصال الخادم الأول والثاني.

إذا تم نشر القواعد محليًا من أجل localhost:

لمستخدمي macOS و Windows : استخدم host.docker.internalبدلاً من ذلك localhost، حيث يجب أن يتصل البرنامج النصي الذي يعمل داخل الحاوية بالجهاز المضيف.

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 forever
DB 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 - Mysql

  • 5432 - PostgreSQL

  • 1433 - MSSQL

  • 1521 - 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

:

( ).

.

مشروع على جيثب .

عرض على DockerHub




All Articles