Data Seeding and Migration

Qurrata Adrianus
Dekowarehouse Project
2 min readMay 17, 2018

Pernah dengar dua istilah di atas? Mungkin bagi sebagian orang, istilah-istilah tersebut masih terdengar asing. Nah, dari pada bingung, yuk cari tau sekarang!

Data Seeding

Data seeding adalah suatu istilah untuk mendeskripsikan penempatan awal database pada aplikasi. Hal ini dilakukan dengan tujuan untuk mempermudah pengembangan aplikasi. Pada dasarnya, kita tentu membutuhkan data untuk mengembangkan aplikasi, test, dan production. Akan tetapi, mengembangkan database yang selanjutnya akan digunakan bukanlah hal yang mudah. Dibutuhkan waktu yang banyak untuk mengurusi database. Oleh karena itu, kita dapat melakukan data seeding untuk mempermudah pengembangan aplikasi pada tahap selanjutnya.

Data seeding biasanya dilakukan dengan proses automasi pada pengaturan awal aplikasi. Data yang digunakan pun tidak harus berupa data yang benar, namun dapat berupa data dummy seperti random text, lorem ipsum, atau blank space, selama dapat digunakan dan ditempatkan pada software.

Implementasi pada Dekowarehouse Project

Proyek Dekowarehouse menggunakan data yang telah diintegrasikan dengan Algolia (sebuah platform pencarian: Search-aas). Dalam hal ini, Dekoruma sebagai client telah menyediakan initial data yang dapat diakses menggunakan react-instantsearch dengan menjalankan code berikut:

import { InstantSearch, Hits } from 'react-instantsearch/dom';
import React, { Component } from 'react';
class App extends Component {
render() {
return(
<InstantSearch
appId=[APP-ID]
apiKey=[API-KEY]
indexName=[INDEX-NAME]
>
<Hits hitComponent={COMPONENT-NAME} />
</InstantSearch>
);
}
}

Dekoruma memberikan akses kepada tim developer berupa appId, apiKey, dan indexName. Dalam hal ini data yang disediakan merupakan data staging. Data tersebut adalah initial data yang hanya digunakan selama masa deployment. Selanjutnya untuk production akan menggunakan data dengan index yang berbeda.

Selama proses pengembangan dengan mengimplementasikan Algolia, kita perlu melakukan customized pada data yang ingin ditempatkan, dimana Algolia akan meminta hal-hal spesifik (seperti atribut) untuk mencari sebuah item. Setelah bermain dengan berbagai query, kita dapat menampilkannya dengan membuat UI/UX menggunakan react. Dalam hal ini, yang perlu dilakukan adalah bermain dengan Hits yang telah disediakan pada library react-instantsearch.

Migration

Migration merupakan suatu proses transferring data antara tipe computer storage atau format file. Hal ini merupakan suatu hal yang perlu dikonsiderasikan karena akan berguna pada saat implementasi ataupun melakukan upgrade. Database Migration dapat disebut juga dengan version control dari database, sehingga tim developer dapat melakukan modifikasi dan berbagi skema database dengan mudah.

Implementasi pada Dekowarehouse Project

Pada proyek Dekowarehouse hingga saat ini tidak dilakukan implementasi migration, melainkan berupa refactoring data dari dummy menjadi data dari algolia dengan index staging.

Source:

--

--