> Markdown-версія сторінки https://yucca.app/uk/docs/guides/DB/migration/. Зміст документації — [llms.txt](https://yucca.app/uk/llms.txt), весь текст одним файлом — [llms-full.txt](https://yucca.app/uk/llms-full.txt). Markdown-версія є у будь-якої сторінки: додайте `.md` до адреси без слешу наприкінці.

# Міграція Sqlite to Postgres

## Огляд

Якщо ви почали використовувати Yucca з Sqlite, а потім ресурси зросли, ви можете мігрувати дані з бази Sqlite на Postgres. Зворотна міграція не передбачена.

## Міграція

1. Заздалегідь розгорніть і підготуйте [postgres](https://yucca.app/uk/docs/guides/DB/postgres.md).

2. Зупиніть сервер Yucca:

   ```sh
   sudo systemctl stop yucca

   ```

3. Запустіть команду міграції, вказавши шлях до вихідної бази та бази призначення:

   ```sh
   /opt/yucca/yucca admin migrate

   ```

   Список усіх параметрів можна переглянути в підказці:

   ```sh
   /opt/yucca/yucca admin migrate --help
   Migrate state from SQLite to PostgreSQL

   Usage:
   yucca admin migrate [flags]

   Flags:
       --config string                         Path to configuration file (default "/opt/yucca/yucca.toml")
       --data-dir string                       The data directory used to store state and other persistent data (default "data")
       --database-busy-timeout int             Timeout in seconds for waiting for an SQLite table to become unlocked (default 500)
       --database-ca-cert-path string          The path to the CA certificate to use (default "/etc/ssl/certs")
       --database-cache-mode string            Shared cache setting used for connecting to the database (private, shared) (default "shared")
       --database-client-cert-path string      The path to the client cert
       --database-client-key-path string       The path to the client key
       --database-conn-max-lifetime duration   Sets the maximum amount of time a connection may be reused (default 0s)
       --database-host string                  Database host (not applicable for sqlite3) (default "127.0.0.1:5432")
       --database-max-idle-conn int            The maximum number of connections in the idle connection pool (default 2)
       --database-max-open-conn int            The maximum number of open connections to the database
       --database-name string                  The name of the Yucca database (default "yucca")
       --database-password string              The database user's password (not applicable for sqlite3) (default "postgres")
       --database-path string                  SQLite database location
       --database-ssl-mode string              SSL mode for Postgres (disable, require or verify-full) (default "disable")
       --database-user string                  The database user (not applicable for sqlite3) (default "postgres")
   -h, --help                                  Help for migrate
       --state-dir string                      The directory used to store state and other persistent data (default "<data-dir>/state")

   ```

4. Вкажіть у [конфігурації](https://yucca.app/uk/docs/configuration.md#database) новий тип бази даних **postgres** і вкажіть реквізити підключення.

5. Запустіть сервер Yucca:

   ```sh
   sudo systemctl start yucca

   ```

6. Переконайтеся, що Yucca тепер використовує **postgres**, це можна побачити в розділі конфігурації `/ui/administration/config` або в логу при старті сервера.
