Database
 sql >> Teknologi Basis Data >  >> RDS >> Database

Menyebarkan Database dari Kontrol Sumber

Saat ini, tim pengembangan memulai proyek baru dari memilih sistem kontrol versi. Ada banyak manfaat dari sistem kontrol sumber dalam mengoordinasikan upaya tim pengembangan. Ini memastikan jejak audit lengkap dari semua perubahan pada kode dan memungkinkan tim untuk mereproduksi revisi atau pembuatan tertentu. Seiring dengan kode pemrograman, database dapat dan harus ditempatkan di bawah kendali sumber. Dalam artikel ini, kita akan melihat cara men-deploy database yang ada di repositori jarak jauh.

Misalnya Anda memiliki repositori jauh yang berisi folder skrip database. Folder berisi skrip DDL untuk objek database. Tugasnya adalah untuk menyebarkan database pada PC lokal. Untuk tujuan demonstrasi, saya akan menggunakan Visual SVN dan Tortoise SVN Repository Browser. Gambar berikut menunjukkan repositori demo yang menghosting folder skrip database.

Langkah pertama adalah membuat copy pekerjaan lokal. Untuk melakukannya, Anda perlu membuat folder di hard drive lokal dan melakukan operasi checkout SVN.

Setelah operasi selesai, semua file SQL akan disimpan di folder lokal. Sekarang, Anda dapat menyebarkan database. Jelas, bukanlah praktik yang baik untuk mengeksekusi secara manual semua file SQL satu per satu. Untuk mengotomatiskan penerapan, Anda dapat membuat file batch.

Membuat file BATCH

Anda perlu membuat file batch. Dalam demo ini, saya akan membuat file sales_demo_build.bat dengan isi sebagai berikut:

sqlcmd -S "PC_NAME\SQLEXPRESS" -U "sa" -P "sa" -i "D:\sales_demo_build\sales_demo_build.sql" PAUSE

Saya menggunakan utilitas SQLCMD dalam file batch. Untuk mendapatkan informasi selengkapnya tentang argumen SQLCMD, baca artikel berikut:Utilitas sqlcmd.

Dengan bantuan SQLCMD, kita dapat mengeksekusi file sales_demo_build.sql. Ini akan mengambil semua file SQL dari folder kerja dan membangun database. File sales_demo_build.sql berisi kode berikut:

SET NOCOUNT ON
GO
 
PRINT 'Creating sales_demo1 database'
 
USE [master]
GO
DECLARE @db_name NVARCHAR(255);
SET @db_name = N'sales_demo1';
IF EXISTS (SELECT 1 FROM sys.databases d WHERE d.name = @db_name)
BEGIN
  EXEC (N'ALTER DATABASE '[email protected]_name+N' SET SINGLE_USER WITH ROLLBACK IMMEDIATE');
  EXEC (N'DROP DATABASE '[email protected]_name);
END;
EXEC (N'CREATE DATABASE '[email protected]_name);
GO
 
USE sales_demo1
GO
 
:On Error exit
 
:r "D:\sales_demo1\Tables\dbo.Customers.sql"
:r "D:\sales_demo1\Tables\dbo.OrderLines.sql"
:r "D:\sales_demo1\Tables\dbo.Orders.sql"
:r "D:\sales_demo1\Tables\dbo.Products.sql"
 
:r "D:\sales_demo1\Tables\Constraints\Foreign Keys\dbo.OrderLines.FK.sql"
:r "D:\sales_demo1\Tables\Constraints\Foreign Keys\dbo.Orders.FK.sql"
 
PRINT 'Creation is Completed'
GO

Script berisi daftar file SQL yang akan dieksekusi.

:r adalah perintah SQLCMD yang mem-parsing pernyataan Transact-SQL tambahan dan perintah sqlcmd dari file yang ditentukan ke dalam cache pernyataan.

Sekarang, kita dapat menjalankan file batch:

Hanya itu saja! Sekarang, kita dapat menyegarkan SSMS Object Explorer dan mulai bekerja dengan database:

Seperti yang Anda lihat, ini adalah cara sederhana untuk menyebarkan database yang disimpan di kontrol sumber. Namun, itu bukan satu-satunya cara untuk menyelesaikan tugas ini. Kami akan membicarakan pendekatan alternatif di artikel berikutnya.

Alat yang berguna:

dbForge Source Control – add-in SSMS yang kuat untuk mengelola perubahan database SQL Server dalam kontrol sumber.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Replikasi Data Inkremental di IRI Workbench

  2. Memahami Analisis Big Data

  3. Operator SQL NOT untuk Pemula

  4. Cara Mengganti Bagian dari String di T-SQL

  5. Rethink Flask – Daftar Todo Sederhana Didukung oleh Flask dan RethinkDB