Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
migrant_lib
Embeddable migration management
Also see
migrantCLI
migrant_lib allows defining and embedding management of database migrations and
(connection) configuration in your compiled application.
Available Features:
| Feature | Backend |
|---|---|
d-postgres |
Enable postgres connectivity |
d-sqlite |
Enable sqlite connectivity |
d-mysql |
Enable mysql connectivity |
d-all |
Enable all backends |
Notes:
- No features are enabled by default
- As of
0.20.0thed-sqlitefeature does not userusqlitesbundledfeature. If you would likesqliteto be bundled with your application, you will have to includerusqliteand enable thebundledfeature in your project.
Usage
- You must enable the database features relevant to your usecase (
d-postgres/d-sqlite/d-mysql). - Migrations can be defined as files, string literals, or functions.
- File migrations can be either read from files at runtime or embedded in your executable at compile time
(using
include_str!). - Migration tags must all be unique and may only contain the characters
[a-z0-9-]. When running in acli_compatiblemode (seeConfig::use_cli_compatible_tags), tags must also be prefixed with a timestamp, following:[0-9]{14}_[a-z0-9-]+. See the embedded_cli_compatible example. - Function migrations must have the signature
fn(ConnConfig) -> Result<(), Box<dyn std::error::Error>>. See the embedded_programmable example for a working sample of function migrations. - When
d-postgresis enabled, you can specify a custom/self-signed ssl certificate usingPostgresSettingsBuilder::ssl_cert_fileor settingssl_cert_file = "..."in yourMigrant.toml.
config.use_migrations?;
CLI Compatibility
Migration management identical to the migrant CLI tool can also be embedded.
This method only supports file-based migrations (so FileMigrations or EmbeddedMigrations using include_str!)
and those migration files names must be timestamped with the format [0-9]{14}_[a-z0-9-]+,
Properly named files can be generated by migrant_lib::new or the migrant CLI tool.
This is required because migration order is implied by file names which must follow
a specific format and contain a valid timestamp.
See the migrant_cli_compatible
example for a working sample where migration files and a Migrant.toml config file are available at runtime.
See the embedded_cli_compatible
example for a working sample where the migrant CLI tool can be used during development, and database configuration
and migration file contents are embedded in the application.
Development
See CONTRIBUTING
License: MIT