Bu rehberde neler öğreneceksiniz?
- ✓ Projeniz için yalıtılmış (isolated) bir Managed Database oluşturmayı öğreneceksiniz.
- ✓ Bağlantı URI'sini (Connection String) alarak kodunuza güvenle enjekte etmeyi göreceksiniz.
- ✓ Ağ izolasyonu, eski veritabanınızı taşıma (migration) ve içe aktarma (import) mantığını kavrayacaksınız.
Modern uygulamaların en kritik bileşenlerinden biri veritabanıdır. Flyway Managed Databases sayesinde MySQL veya PostgreSQL veritabanınızı saniyeler içinde oluşturabilir, doğrudan uygulamanıza bağlayabilirsiniz. Tüm Managed Database altyapısı Flyway tarafından yönetilir; kurulum, bakım, güncellemeler ve yedeklemeler platform tarafından otomatik olarak gerçekleştirilirken siz yalnızca uygulamanızı geliştirmeye odaklanırsınız.
🛠️ 1. Veritabanı Oluşturma
Projenize bulut veritabanı eklemek için aşağıdaki adımları sırasıyla takip edin:
| Motor (Engine) | Kullanım Senaryosu & Önerilen Durumlar |
|---|---|
|
Managed PostgreSQL
v15.x / v16.x Destekli
|
Modern SaaS uygulamaları, API servisleri ve veri yoğun sistemler için önerilir. Yüksek veri tutarlılığı sağlar. |
|
Managed MySQL
v8.x Destekli
|
WordPress, klasik PHP uygulamaları ve yüksek uyumluluk gerektiren projeler için önerilir. |
🔐 2. Bağlantı Bilgilerini (Connection String) Alma
Veritabanınız saniyeler içinde ayağa kalktıktan sonra, projenizi bağlayabilmek için kimlik bilgilerini almalısınız. Flyway panelinizdeki ilgili veritabanının detay sayfasına girin ve "Connection URI" alanındaki kopyala ikonuna tıklayın.
Modern ORM araçları (Prisma, Drizzle, Eloquent, Sequelize, TypeORM, SQLAlchemy gibi) şifreyi, portu ve kullanıcı adını tek bir dize (URI) olarak kabul eder:
postgres://username:password@host:5432/database
💻 3. Projeye Bağlama (.env Enjeksiyonu)
Kopyaladığınız bağlantı dizesini asla kaynak kodunuzun (Örn: config.php) içine doğrudan yazmamalısınız. Bunun yerine, projenizin Environment Variables (.env) sekmesine gidin ve aşağıdaki gibi yeni bir değişken ekleyin:
DATABASE_URL=postgres://username:password@host:5432/database
Eğer framework'ünüz tek satırlık URI desteklemiyorsa (eski Laravel veya PHP projeleri gibi), size verdiğimiz bu bağlantı dizesindeki Host, Port, Kullanıcı Adı ve Şifre kısımlarını parçalayarak DB_HOST, DB_PORT, DB_USER ve DB_PASSWORD şeklinde .env dosyanıza ayrı ayrı girebilirsiniz. Ekledikten sonra projenizi Re-deploy etmeyi unutmayın.
Yerel geliştirme yaparken kullandığınız .env dosyanızın .gitignore içinde olduğundan ve hiçbir koşulda GitHub/GitLab deponuza gönderilmediğinden emin olun. Hassas bağlantı dizeleri asla açık kaynak kodla paylaşılmamalıdır. Flyway, panel üzerinden eklediğiniz ortam değişkenlerini şifrelenmiş olarak saklar ve çalışma zamanı dışında uygulamanızla paylaşmaz.
🛡️ Ağ İzolasyonu (Private Networking)
Flyway Managed Database servisleri varsayılan olarak internetten erişilemez. Bu mimari, production veritabanlarının internete doğrudan açılmasını önleyen modern bulut platformlarının benimsediği güvenlik yaklaşımıdır.
- ✓ İnternete açık olmadığı için doğrudan brute-force saldırı yüzeyi büyük ölçüde ortadan kalkar.
- ✓ Dış dünyadan port taramaları yapılamaz.
- ✓ Public IP ataması yapılmaz.
- ✓ Veritabanı yalnızca aynı yalıtılmış ağdaki (VPC) Flyway projeleriniz tarafından kullanılabilir.
Flyway Managed Database üretim (production) ortamı için tasarlanmıştır. Yerel geliştirme sırasında Docker, XAMPP, Laragon veya benzeri araçlarla çalışan ayrı bir veritabanı kullanmanız önerilir.
📦 4. Veritabanımı Nasıl Taşıyabilirim? (Import & Migration)
Ağınız dışarıya kapalı olduğu için bilgisayarınızdaki HeidiSQL, DBeaver veya TablePlus gibi araçlarla Flyway veritabanınıza doğrudan bağlanamazsınız. Peki mevcut veritabanı tablolarınızı veya .sql dosyanızı nasıl aktaracaksınız?
ORM kullanıyorsanız, tablo kurulum işlemlerini projenizin Build veya Run komutlarına ekleyin. Uygulamanız her deploy olduğunda tablolarınız otomatik oluşturulur.
php artisan migrate --force
npx prisma migrate deploy
drizzle-kit migrate
Mevcut bir .sql yedeğiniz (dump) varsa, Flyway panelindeki veritabanı detay sayfasına girin. Flyway Database Explorer sayesinde SQL sorguları çalıştırabilir ve desteklenen dosya formatlarını güvenli şekilde içe aktarabilirsiniz.
⚠️ Limit Uyarısı: Web tabanlı Database Explorer arayüzlerinde dosya yükleme boyutu limiti (Örn: 100MB) olabilir. Dev boyutlu dump dosyaları için uygulamanızın içine SQL import betikleri yazmayı tercih edebilirsiniz.
🎉 Her Şey Hazır!
Veritabanınız artık güvenli özel ağ üzerinde çalışıyor ve uygulamanız production ortamına hazır. Yedekleme, bakım, güncellemeler ve altyapı yönetimi Flyway tarafından otomatik olarak gerçekleştirilirken siz yalnızca ürününüzü geliştirmeye odaklanabilirsiniz.