mirror of
https://github.com/warp-tech/warpgate.git
synced 2024-09-20 06:46:17 +08:00
fixed #456 - postgresql migrations
This commit is contained in:
parent
891760f092
commit
bfa2d262f3
16
justfile
16
justfile
|
@ -1,25 +1,27 @@
|
|||
projects := "warpgate warpgate-admin warpgate-common warpgate-db-entities warpgate-db-migrations warpgate-database-protocols warpgate-protocol-ssh warpgate-protocol-mysql warpgate-protocol-http warpgate-core warpgate-sso"
|
||||
|
||||
features := "sqlite,postgres,mysql"
|
||||
|
||||
run *ARGS:
|
||||
RUST_BACKTRACE=1 RUST_LOG=warpgate cargo run -- --config config.yaml {{ARGS}}
|
||||
RUST_BACKTRACE=1 RUST_LOG=warpgate cargo run --features {{features}} -- --config config.yaml {{ARGS}}
|
||||
|
||||
fmt:
|
||||
for p in {{projects}}; do cargo fmt -p $p -v; done
|
||||
for p in {{projects}}; do cargo fmt --features {{features}} -p $p -v; done
|
||||
|
||||
fix *ARGS:
|
||||
for p in {{projects}}; do cargo fix -p $p {{ARGS}}; done
|
||||
for p in {{projects}}; do cargo fix --features {{features}} -p $p {{ARGS}}; done
|
||||
|
||||
clippy *ARGS:
|
||||
for p in {{projects}}; do cargo cranky -p $p {{ARGS}}; done
|
||||
for p in {{projects}}; do cargo cranky --features {{features}} -p $p {{ARGS}}; done
|
||||
|
||||
test:
|
||||
for p in {{projects}}; do cargo test -p $p; done
|
||||
for p in {{projects}}; do cargo test --features {{features}} -p $p; done
|
||||
|
||||
yarn *ARGS:
|
||||
cd warpgate-web && yarn {{ARGS}}
|
||||
|
||||
migrate *ARGS:
|
||||
cargo run -p warpgate-db-migrations -- {{ARGS}}
|
||||
cargo run --features {{features}} -p warpgate-db-migrations -- {{ARGS}}
|
||||
|
||||
lint:
|
||||
cd warpgate-web && yarn run lint
|
||||
|
@ -36,4 +38,4 @@ openapi:
|
|||
cleanup: (fix "--allow-dirty") (clippy "--fix" "--allow-dirty") fmt svelte-check lint
|
||||
|
||||
udeps:
|
||||
cargo udeps --all-targets
|
||||
cargo udeps --features {{features}} --all-targets
|
||||
|
|
|
@ -8,7 +8,7 @@ use uuid::Uuid;
|
|||
#[oai(rename = "TargetRoleAssignment")]
|
||||
pub struct Model {
|
||||
#[sea_orm(primary_key, auto_increment = true)]
|
||||
pub id: u32,
|
||||
pub id: i32,
|
||||
pub target_id: Uuid,
|
||||
pub role_id: Uuid,
|
||||
}
|
||||
|
|
|
@ -8,7 +8,7 @@ use uuid::Uuid;
|
|||
#[oai(rename = "UserRoleAssignment")]
|
||||
pub struct Model {
|
||||
#[sea_orm(primary_key, auto_increment = true)]
|
||||
pub id: u32,
|
||||
pub id: i32,
|
||||
pub user_id: Uuid,
|
||||
pub role_id: Uuid,
|
||||
}
|
||||
|
|
|
@ -79,7 +79,7 @@ mod target_role_assignment {
|
|||
#[sea_orm(table_name = "target_roles")]
|
||||
pub struct Model {
|
||||
#[sea_orm(primary_key, auto_increment = true)]
|
||||
pub id: u32,
|
||||
pub id: i32,
|
||||
pub target_id: Uuid,
|
||||
pub role_id: Uuid,
|
||||
}
|
||||
|
|
|
@ -39,7 +39,7 @@ mod user_role_assignment {
|
|||
#[sea_orm(table_name = "user_roles")]
|
||||
pub struct Model {
|
||||
#[sea_orm(primary_key, auto_increment = true)]
|
||||
pub id: u32,
|
||||
pub id: i32,
|
||||
pub user_id: Uuid,
|
||||
pub role_id: Uuid,
|
||||
}
|
||||
|
|
|
@ -56,7 +56,7 @@ pub(crate) async fn command(cli: &crate::Cli) -> Result<()> {
|
|||
std::process::exit(1);
|
||||
}
|
||||
|
||||
if let Commands::Setup = cli.command {
|
||||
if let Commands::Setup { .. } = cli.command {
|
||||
assert_interactive_terminal();
|
||||
}
|
||||
|
||||
|
@ -114,14 +114,16 @@ pub(crate) async fn command(cli: &crate::Cli) -> Result<()> {
|
|||
create_dir_all(&db_path)?;
|
||||
secure_directory(&db_path)?;
|
||||
|
||||
store.database_url = Secret::new(
|
||||
if let Commands::UnattendedSetup {
|
||||
store.database_url = Secret::new(match &cli.command {
|
||||
Commands::UnattendedSetup {
|
||||
database_url: Some(url),
|
||||
..
|
||||
} = &cli.command
|
||||
{
|
||||
url.to_owned()
|
||||
} else {
|
||||
}
|
||||
| Commands::Setup {
|
||||
database_url: Some(url),
|
||||
..
|
||||
} => url.to_owned(),
|
||||
_ => {
|
||||
let mut db_path = db_path.to_string_lossy().to_string();
|
||||
|
||||
if let Some(x) = db_path.strip_suffix("./") {
|
||||
|
@ -129,8 +131,8 @@ pub(crate) async fn command(cli: &crate::Cli) -> Result<()> {
|
|||
}
|
||||
|
||||
format!("sqlite:{db_path}")
|
||||
},
|
||||
);
|
||||
}
|
||||
});
|
||||
|
||||
if let Commands::UnattendedSetup { http_port, .. } = &cli.command {
|
||||
store.http.enable = true;
|
||||
|
|
|
@ -32,7 +32,11 @@ pub struct Cli {
|
|||
#[derive(clap::Subcommand)]
|
||||
pub(crate) enum Commands {
|
||||
/// Run first-time setup and generate a config file
|
||||
Setup,
|
||||
Setup {
|
||||
/// Database URL
|
||||
#[clap(long)]
|
||||
database_url: Option<String>,
|
||||
},
|
||||
/// Run first-time setup non-interactively
|
||||
UnattendedSetup {
|
||||
/// Database URL
|
||||
|
@ -92,7 +96,7 @@ async fn _main() -> Result<()> {
|
|||
Commands::TestTarget { target_name } => {
|
||||
crate::commands::test_target::command(&cli, target_name).await
|
||||
}
|
||||
Commands::Setup | Commands::UnattendedSetup { .. } => {
|
||||
Commands::Setup { .. } | Commands::UnattendedSetup { .. } => {
|
||||
crate::commands::setup::command(&cli).await
|
||||
}
|
||||
Commands::ClientKeys => crate::commands::client_keys::command(&cli).await,
|
||||
|
|
Loading…
Reference in a new issue