- Terdapat Supabase instance di
online / local / self host(salah satu) - Ter install
node.jsserta Docker pada mesin local
Step ini dilakukan apabila supabase ada di online / self host. Step ini dapat di skip apabila sudah ada di local.
- Pada directory yang anda inginkan, run
npx supabase inituntuk setup supabase folder dan config. - run
npx supabase startuntuk setup Docker (download docker image + setup)
Apabila database ada di online / self host, jalankan:
npx supabase db diff -f initial_structure --db-url [connection-string-asal]
Ganti [connection-string-asal] dengan connection string asal anda.
Apabila database sudah ada di local dan belum ada migration files, jalankan:
npx supabase db diff
Kedua command tersebut sama-sama akan membuat file migration pada folder supabase\migrations. Beri nama custom pada flag -f apabila perlu.
Apabila anda melakukan perubahan pada schema auth dan storage, atau untuk jaga-jaga, lakukan db diff lagi dengan flag --schema auth,storage seperti berikut:
npx supabase db diff -f initial_structure --db-url [connection-string-asal] --schema auth,storage
File migrations yang dihasilkan dari langkah sebelumnya hanya memiliki informasi dari struktur database saja, tanpa data. Untuk mengambil datanya, bisa dilakukan dengan npx supabase db dump --data-only seperti berikut:
npx supabase db dump --data-only -f supabase/seed.sql --db-url [connection-string-asal]
Ganti [connection-string-asal] dengan connection string anda.
Apabila anda berawal dari online / self host, maka anda dapat menjalankan npx supabase db reset untuk menjalankan migrations dan seed dari file-file dari langkah sebelumnya pada database local anda. Selanjutnya anda dapat membuka Supabase Studio local untuk validasi.
Jalankan command berikut untuk reset db di online / self host (recommended untuk 100% sync). Ganti connection-string-tujuan dengan connection string tujuan anda:
npx supabase db reset --db-url [connection-string-tujuan]
Jalankan command berikut untuk push satu2 (apabila sudah pernah sync dan hanya ingin update perubahan saja):
npx supabase db push --db-url [connection-string-tujuan]