Skip to content

Commit b6e6280

Browse files
committed
make connection optional in dbdev add command
1 parent 58bc86d commit b6e6280

2 files changed

Lines changed: 24 additions & 9 deletions

File tree

cli/src/commands/add.rs

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ async fn write_upgrade_files(
9797
pub async fn add(
9898
payload: &Payload,
9999
output_path: &Path,
100-
mut conn: PgConnection,
100+
mut conn: Option<PgConnection>,
101101
schema: &Option<String>,
102102
version: &Option<String>,
103103
handle: &Option<String>,
@@ -108,7 +108,11 @@ pub async fn add(
108108
payload.metadata.extension_name.clone()
109109
};
110110

111-
let existing_versions = extension_versions(&mut conn, &extension_name).await?;
111+
let existing_versions = match conn {
112+
Some(ref mut conn) => extension_versions(conn, &extension_name).await?,
113+
None => HashSet::new(),
114+
};
115+
112116
let mut installed_extension_once = !existing_versions.is_empty();
113117
let mut versions_installed_now = HashSet::new();
114118

@@ -196,8 +200,10 @@ pub async fn add(
196200
}
197201
}
198202

199-
let existing_update_paths =
200-
(update_paths(&mut conn, &extension_name).await).unwrap_or_default();
203+
let existing_update_paths = match conn {
204+
Some(ref mut conn) => (update_paths(conn, &extension_name).await).unwrap_or_default(),
205+
None => HashSet::new(),
206+
};
201207

202208
for upgrade_file in &payload.upgrade_files {
203209
let update_path = UpdatePath {
@@ -227,14 +233,16 @@ pub async fn add(
227233

228234
// add schema if specified
229235
if let Some(schema) = schema {
230-
migration_content.push_str(" schema ");
236+
migration_content.push_str(r#" schema ""#);
231237
migration_content.push_str(schema);
238+
migration_content.push('"');
232239
}
233240

234241
// add version if specified
235242
if let Some(version) = version {
236-
migration_content.push_str(" version ");
243+
migration_content.push_str(" version '");
237244
migration_content.push_str(version);
245+
migration_content.push('\'');
238246
}
239247

240248
migration_content.push_str(";\n");

cli/src/main.rs

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ enum Commands {
3838
Add {
3939
/// PostgreSQL connection string
4040
#[arg(short, long)]
41-
connection: String,
41+
connection: Option<String>,
4242

4343
/// Location to create the migration SQL file
4444
#[arg(short, long, value_parser)]
@@ -198,7 +198,11 @@ async fn main() -> anyhow::Result<()> {
198198
let client = client::ApiClient::from_registry(registry)?;
199199
let (payload, handle) =
200200
commands::add::payload_from_package(client, name).await?;
201-
let conn = util::get_connection(connection).await?;
201+
202+
let conn = match connection {
203+
Some(connection) => Some(util::get_connection(connection).await?),
204+
None => None,
205+
};
202206

203207
commands::add::add(&payload, output_path, conn, schema, version, &Some(handle))
204208
.await?;
@@ -207,7 +211,10 @@ async fn main() -> anyhow::Result<()> {
207211
let current_dir = env::current_dir()?;
208212
let extension_dir = directory.as_ref().unwrap_or(&current_dir);
209213
let payload = models::Payload::from_path(extension_dir)?;
210-
let conn = util::get_connection(connection).await?;
214+
let conn = match connection {
215+
Some(connection) => Some(util::get_connection(connection).await?),
216+
None => None,
217+
};
211218

212219
commands::add::add(&payload, output_path, conn, schema, version, &None).await?;
213220
}

0 commit comments

Comments
 (0)