【Rust】Axumでpostgresのmigrationを実行したい

tokio-postgres-migrationを使用します。
https://crates.io/crates/tokio-postgres-migration

Cargo.toml

tokio-postgres-migration = "0.1.0"

./asset/0001-create-table-books-up.sql

CREATE TABLE books ( 
    id integer PRIMARY KEY GENERATED ALWAYS AS IDENTITY,
    name varchar(10),
    body text NOT NULL
);
use tokio_postgres_migration::Migration;
//
const SCRIPTS_UP: [(&str, &str); 2] = [
    (
        "0001-create-table-books",
        include_str!(".././asset/0001-create-table-books-up.sql"),
    ),
    (
        "0002-create-table-pets",
        include_str!(".././asset/0002-create-table-pets-up.sql"),
    )
];
//

async fn handle_migration() -> impl IntoResponse {
    let _ = create_table().await;
    (StatusCode::OK, format!("Migration completed"))
}

async fn psql_connect() -> Result<Client, Box<dyn std::error::Error>>  {
    let (client, connection) = tokio_postgres::connect("host=localhost user=postgres password=hogehoge", NoTls).await?;

    tokio::spawn(async move {
        if let Err(e) = connection.await {
            eprintln!("connection error: {}", e);
        }
    });
    Ok(client)
}

async fn create_table() -> Result<(), Box<dyn std::error::Error>> {
    let mut client = psql_connect().await.unwrap();
    let migration = Migration::new("table_to_keep_migrations".to_string());
    migration.up(&mut client, &SCRIPTS_UP).await?;
    Ok(())
}

これだと、booksとpetsは作られるんだけど、Migration::new(“${table_name}”)のtable_nameもselfで作られてしまうな…
https://github.com/jdrouet/tokio-postgres-migration/blob/main/src/lib.rs

migrationがどういうものかは理解した。