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
migrant
CLI
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.0
thed-sqlite
feature does not userusqlite
sbundled
feature. If you would likesqlite
to be bundled with your application, you will have to includerusqlite
and enable thebundled
feature 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_compatible
mode (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-postgres
is enabled, you can specify a custom/self-signed ssl certificate usingPostgresSettingsBuilder::ssl_cert_file
or settingssl_cert_file = "..."
in yourMigrant.toml
.
.use_migrations?;
config
CLI Compatibility
Migration management identical to the migrant
CLI tool can also be embedded.
This method only supports file-based migrations (so FileMigration
s or EmbeddedMigration
s 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