Skip to content

Cum să folosești placeholder-e în scripturile Flyway

DodaTech Updated 2025-01-15 1 min read

In this tutorial, you'll learn about Cum să folosești placeholder. We cover key concepts, practical examples, and best practices.

Placeholder-ele în Flyway permit înlocuirea dinamică a valorilor în scripturile SQL în funcție de mediu, eliminând duplicarea scripturilor.

Problema

Aceleași migrări pot necesita valori diferite în funcție de mediu (dev, staging, producție). Fără placeholder-e, ar trebui să menții scripturi separate.

Configurare de bază

# flyway.conf
flyway.placeholderReplacement=true
flyway.placeholders.schema_name=app
flyway.placeholders.admin_user=admin

Script SQL cu placeholder-e

-- db/migration/V2__create_schema.sql
CREATE SCHEMA IF NOT EXISTS ${schema_name};

CREATE TABLE ${schema_name}.config (
    key VARCHAR(100),
    value VARCHAR(500)
);

INSERT INTO ${schema_name}.config (key, value)
VALUES ('admin', '${admin_user}');

Configurare per mediu

# dev/flyway.conf
flyway.placeholders.schema_name=app_dev
flyway.placeholders.admin_user=admin_dev

# prod/flyway.conf
flyway.placeholders.schema_name=app
flyway.placeholders.admin_user=admin_prod

Linia de comandă

flyway migrate \
  -placeholders.schema_name=app_dev \
  -placeholders.admin_user=admin_dev

Placeholder-e predefinite

Flyway include câteva placeholder-e implicite:

  • ${flyway.defaultSchema} — schema default
  • ${flyway.user} — utilizatorul bazei de date

Erori frecvente

  1. PlaceholderReplacement=false — dacă e dezactivat, ${...} nu se înlocuiește.
  2. Placeholder nedeclarat — placeholder-ul din SQL nu are o valoare definită.
  3. Prefix/sufix personalizat — poți schimba ${ și } cu flyway.placeholderPrefix și flyway.placeholderSuffix.

FAQ

### Pot dezactiva placeholder-e pentru un script?

Nu direct, dar poți seta flyway.placeholderReplacement=false pentru a dezactiva complet.

Placeholder-ele funcționează și în comentarii SQL?

Da, Flyway înlocuiește placeholder-ele în tot conținutul scriptului, inclusiv comentarii.

Built by the developers of Doda Browser, DodaZIP, and Durga Antivirus Pro. DodaTech tools integrate seamlessly with Flyway for enhanced productivity and security.

Built by the developers of DodaTech

Doda Browser, DodaZIP & Durga Antivirus Pro