Cara menggunakan mysql to postgresql

Tak terasa sudah hampir menyentuh 4 tahun dan aplikasi web yang dibangun membengkak ukuran SQL-nya meningkatnya berlipat-lipat. Membengkaknya ukuran MYSQL jelas saja menurunkan performa speed website. 

Query data yang besar pada database jelas saja menjadi salah satu biang keroknya. Meski dapat di optimasi dengan banyak macam cara, misalnya dari mulai memindahkan database tidak dalam 1 hosting dengan aplikasinya, membuat clone,  sampai dengan mengganti platform Frameworknya dengan Laravel yang mampu meng-query data dengan baik menggunakan Elequent).

Namun, lagi-lagi cost yang dibutuhkan cukup lumayan dari sisi peningkatan performa Server untuk database dan tingkat fleksibilitas. Akhirnya karena skalanya sudah mulai besar dan rumit, diputuskanlah untuk mengupgrade ke PostgreSQL !!.

Alasan migrasi MySQL ke PostgreSQL

Ada beberapa alasan kenapa kami harus beralih ke PostgreSQL, diantaranya adalah :

  1. PostgreSQL paling cocok dipakai diLaravel karena perintah query eksekusi datanya hampir mirip dengan MySQL. (meski tidak semua ~ ada beberapa yang tidak compatible meskipun jumlahnya sedikit).
  2. Butuh fitur yang dapat menyimpan item data dalam jumlah banyak dalam satu record. PostgreSQL jagonya!
  3. PostgreSQL memiliki kecepatan lebih baik meski dalam Load tinggi. Jauh lebih baik dari kecepatan yang dimiliki MySQL dalam hal query dengan klausa JOIN dengan tingkat yang kompleks.
  4. Salah satu alasan utama kami pindah ke PostgreSQL, adalah karena memiliki  tipe Data Geometri yang digunakan untuk maps. Tipe data geometri yang disupport diantaranya adalah data titik, garis, lingkaran dan polygon. Sangat bermanfaat untuk membuat aplikasi web yang dengan basis untuk pemetaan dan lain sebagainya misalnya Web GIS
  5. PostgreSQL dapat mendefinisikan Field sebagai Array juga dapat menerjemahkan / mendefinisikan field yang biasanya belum dapat terdefinisi otomatis sebagai array.
  6. Free to Use alias gratis 😀 , memiliki Lisensi GPL (General Public License): yang dapat digunakan secara bebas oleh setiap penggunanya tanpa harus melalui proses pemesanan, pembayaran alias free of charged.

Migrasi PostgreSQL pada Laravel

Jika misalnya anda berencana membuat sebuah website dalam skala medium atau agak besar langsung saja deploy menggunakan database PostgreSQL kebetulan Laravel support dengan PostgreSQL. Tinggal setting saja dibagian .env (file dibagian root). Misalnya :

DB_CONNECTION=pgsql
DB_HOST=127.0.0.1
DB_PORT=5432
DB_DATABASE=databasemu

DB_USERNAME=usernamemu
DB_PASSWORD=passwordmu

atau jika tidak dideklarasikan di .env, maka bisa diganti dibagian app/config.php (bagian database).

Namun jika melakukan migrasi dari situs yang sudah ada menggunakan MySQL, maka banyak hal yang harus diperhatikan, akan banyak sekali error disana-sini, terutama yang berkaitan dengan Query dan CRUD yang berlokasi dibagian Controller, Command atau Model . Misalnya yang paling mencolok menurut pengalaman saya adalah:

Setelah sudah fix menentukan database mana yang akan di export silahkan kalian buka terminal kalian, disini saya menggunakan CMD bawaan windows dan arahkan ke ‘C:\Program Files\PostgreSQL\13\bin lalu ketikkan perintah berikut untuk export :

$ pg_dump -U {user} -s {Nama_DB} > {path_file_convert}
$ pg_dump -U postgres -s EmployeeDB > D:\EmployeeDB.sql
Cara menggunakan mysql to postgresql

Silahkan sesuaikan user dan nama database dengan environment masing masing.

Jika sudah, silahkan cek pada path extract yang sudah kalian tentukan (dikasus ini saya taruh di Disk D).

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Anda dapat menggunakan paket ekstensi SQL Server ke PostgreSQL diAWS SCT. Paket ekstensi ini mengemulasi fungsi database SQL Server dalam kode PostgreSQL dikonversi. Menggunakan paket ekstensi SQL Server ke PostgreSQL untuk mengemulasikan SQL Server Agent dan SQL Server Database Mail. Untuk informasi selengkapnya tentang paket ekstensi, lihatMenggunakan paketAWS SCT ekstensi.

Hak istimewa untuk PostgreSQL sebagai basis data target

Untuk menggunakan PostgreSQL sebagai target,AWS SCT memerlukanCREATE ON DATABASE hak istimewa. Pastikan Anda memberikan hak istimewa ini untuk setiap database PostgreSQL target.

Untuk menggunakan sinonim publik yang dikonversi, ubah jalur pencarian default basis data ke"$user", public_synonyms, public.

Anda dapat menggunakan contoh kode berikut untuk membuat pengguna database dan memberikan hak istimewa.

CREATE ROLE user_name LOGIN PASSWORD 'your_password';
GRANT CREATE ON DATABASE db_name TO user_name;
ALTER DATABASE db_name SET SEARCH_PATH = "$user", public_synonyms, public;

Di contoh sebelumnya, ganti user_name dengan nama pengguna Anda. Kemudian, ganti

BEGIN
   ....
   statement1;
   ....
   GOTO label1;
   statement2;
   ....
   label1:
   Statement3;
   ....
END
0 dengan nama database target Anda. Terakhir, ganti
BEGIN
   ....
   statement1;
   ....
   GOTO label1;
   statement2;
   ....
   label1:
   Statement3;
   ....
END
1 sandi yang aman.

Di PostgreSQL, hanya pemilik skema atau

BEGIN
   ....
   statement1;
   ....
   GOTO label1;
   statement2;
   ....
   label1:
   Statement3;
   ....
END
2 dapat menjatuhkan skema. Pemilik dapat menjatuhkan skema dan semua objek yang disertakan skema ini bahkan jika pemilik skema tidak memiliki beberapa objeknya.

Bila Anda menggunakan pengguna yang berbeda untuk mengkonversi dan menerapkan skema yang berbeda ke database target Anda, Anda bisa mendapatkan pesan kesalahan ketika tidakAWS SCT dapat menjatuhkan skema. Untuk menghindari pesan galat ini, gunakan

BEGIN
   ....
   statement1;
   ....
   GOTO label1;
   statement2;
   ....
   label1:
   Statement3;
   ....
END
2 peran.

Pengaturan konversi SQL Server ke PostgreSQL

Untuk mengedit pengaturan konversi SQL Server ke PostgreSQL, pilih Pengaturan, lalu pilih Pengaturan konversi. Dari daftar atas, pilih SQL Server, lalu pilih SQL Server — PostgreSQL. AWS SCTmenampilkan semua pengaturan yang tersedia untuk konversi SQL Server ke PostgreSQL.

Pengaturan konversi SQL Server ke PostgreSQL diAWS SCT termasuk pilihan untuk berikut ini:

  • Untuk membatasi jumlah komentar dengan item tindakan dalam kode yang dikonversi.

    Untuk Seberapa detail komentar di SQL yang dikonversi, pilih tingkat keparahan item tindakan. AWS SCTmenambahkan komentar dalam kode dikonversi untuk item tindakan tingkat keparahan yang dipilih dan lebih tinggi.

    Misalnya, untuk meminimalkan jumlah komentar dalam kode Anda yang dikonversi, pilih Kesalahan saja. Untuk menyertakan komentar untuk semua item tindakan dalam kode yang telah dikonversi, pilih Semua pesan.

  • Untuk memungkinkan untuk menggunakan indeks dengan nama yang sama dalam tabel yang berbeda di SQL Server.

    Di PostgreSQL, semua nama indeks yang Anda gunakan dalam skema, harus unik. Untuk memastikan bahwaAWS SCT menghasilkan nama unik untuk semua indeks Anda, pilih Buat nama unik untuk indeks.

  • Untuk mengkonversi prosedur SQL Server ke fungsi PostgreSQL.

    PostgreSQL versi 10 dan sebelumnya tidak mendukung prosedur. Untuk pelanggan yang tidak terbiasa menggunakan prosedur di PostgreSQL,AWS SCT dapat mengonversi prosedur ke fungsi. Untuk melakukannya, pilih Convert procedures to functions.

  • Untuk meniru output dari

    BEGIN
       ....
       statement1;
       ....
       GOTO label1;
       statement2;
       ....
       label1:
       Statement3;
       ....
    END
    4 dalam tabel.

    Database SQL Server sumber Anda dapat menyimpan output dari

    BEGIN
       ....
       statement1;
       ....
       GOTO label1;
       statement2;
       ....
       label1:
       Statement3;
       ....
    END
    4 dalam tabel. AWS SCTmenciptakan tabel sementara dan prosedur tambahan untuk meniru fitur ini. Untuk menggunakan emulasi ini, pilih Buat rutinitas tambahan untuk menangani set data terbuka.

  • Untuk menentukan template yang akan digunakan untuk nama-nama skema dalam kode dikonversi. Untuk Templat pembuatan nama Skema, pilih salah satu opsi berikut:

    • - Menggunakan nama database SQL Server sebagai nama skema di PostgreSQL.

    • - Menggunakan nama skema SQL Server sebagai nama skema di PostgreSQL.

    • _— Menggunakan kombinasi database SQL Server dan nama skema sebagai nama skema di PostgreSQL.

  • Untuk menjaga huruf kasus nama objek sumber Anda.

    Untuk menghindari konversi nama objek ke huruf kecil, pilih Hindari casting ke huruf kecil untuk operasi sensitif huruf kecil. Opsi ini hanya berlaku ketika Anda mengaktifkan opsi sensitivitas kasus di database target Anda.

  • Untuk menjaga nama parameter dari database sumber Anda.

    Untuk menambahkan tanda kutip ganda ke nama parameter dalam kode yang dikonversi, pilih Simpan nama parameter asli.

Mengkonversi partisi SQL Server ke PostgreSQL versi 10 partisi

Saat Anda mengonversi database Microsoft SQL Server ke Amazon Aurora PostgreSQL yang kompatibel dengan Edition (Aurora PostgreSQL) atau Amazon Relational Database Service untuk PostgreSQL (Amazon RDS for PostgreSQL), perhatikan hal berikut.

Di SQL Server, Anda membuat partisi dengan fungsi partisi. Ketika mengkonversi dari SQL Server ke PostgreSQL,AWS SCT mengubah objek sistem SQL Server menjadi objek dikenali di PostgreSQL. Tabel berikut menunjukkan bagaimana objek sistem dikonversi.

Apakah PostgreSQL dan MySQL sama?

MySQL adalah basis data relasional murni, tetapi PostgreSQL adalah basis data relasional objek atau ORDBMS dengan kemampuan seperti pewarisan tabel serta fungsi yang berlebihan.

PostgreSQL menggunakan bahasa apa?

Secara umum sistem database ini menggunakan Structured Query Language (SQL) sebagai bahasa pemrograman. PostgreSQL adalah salah satu jenis relational database yang saat ini menjadi salah satu alternatif database yang paling banyak digunakan.

Bagaimana cara membuat database di MySQL?

Untuk membuat database MySQL baru, masuk cPanel dan klik menu MySQL Databases:.
Pilih nama database. Prefix defaultnya adalah "yoururser_". ... .
Scroll ke bawah dan cari Add New User. Masukkan username dan password, lalu klik Create User:.
Cari opsi Add User To Database untuk menghubungkan User ke Database. ... .
Selesai!.

Langkah kerja MySQL?

Cara kerja MySQL.
MySQL membuat database yang dapat memodifikasi, menyimpan data, dan menentukan keterkaitan tabel-tabel yang ada di dalam software..
Kemudian, perangkat pengguna membuat request dengan perintah spesifik menggunakan bahasa SQL..
Terakhir, server akan menerima dan menjalankan perintah..