Skip to content

Commit b62d4f1

Browse files
nipunn1313Convex, Inc.
authored andcommitted
Print out enabled/disabled indexes on CLI of components push (#40165)
GitOrigin-RevId: eaa87bb3a7b55975ab807711deaf5d0764e07aac
1 parent 85b92bc commit b62d4f1

File tree

4 files changed

+82
-24
lines changed

4 files changed

+82
-24
lines changed

crates/common/src/types/index.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@ use crate::{
2727
bootstrap_model::index::{
2828
index_validation_error,
2929
DeveloperIndexMetadata,
30-
IndexMetadata,
3130
},
3231
document::ParsedDocument,
3332
index::IndexKey,
@@ -187,7 +186,7 @@ impl<T: IndexTableIdentifier + FromStr<Err = anyhow::Error>> FromStr for Generic
187186
pub struct IndexDiff {
188187
/// missing -> exists
189188
/// missing -> staged
190-
pub added: Vec<IndexMetadata<TableName>>,
189+
pub added: Vec<DeveloperIndexMetadata>,
191190
/// staged -> staged
192191
/// exist -> exist
193192
pub identical: Vec<ParsedDocument<DeveloperIndexMetadata>>,

crates/model/src/deployment_audit_log/types.rs

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,20 @@ pub struct AuditLogIndexDiff {
8585
)
8686
)]
8787
pub removed_indexes: Vec<(IndexName, DeveloperIndexConfig)>,
88+
#[cfg_attr(
89+
any(test, feature = "testing"),
90+
proptest(
91+
strategy = "prop::collection::vec(any::<(IndexName, DeveloperIndexConfig)>(), 0..4)"
92+
)
93+
)]
94+
pub enabled_indexes: Vec<(IndexName, DeveloperIndexConfig)>,
95+
#[cfg_attr(
96+
any(test, feature = "testing"),
97+
proptest(
98+
strategy = "prop::collection::vec(any::<(IndexName, DeveloperIndexConfig)>(), 0..4)"
99+
)
100+
)]
101+
pub disabled_indexes: Vec<(IndexName, DeveloperIndexConfig)>,
88102
}
89103

90104
impl From<IndexDiff> for AuditLogIndexDiff {
@@ -99,9 +113,21 @@ impl From<IndexDiff> for AuditLogIndexDiff {
99113
.into_iter()
100114
.map(|index| (index.name.clone(), index.into_value().config.into()))
101115
.collect();
116+
let enabled_indexes = diff
117+
.enabled
118+
.into_iter()
119+
.map(|index| (index.name.clone(), index.into_value().config.into()))
120+
.collect();
121+
let disabled_indexes = diff
122+
.disabled
123+
.into_iter()
124+
.map(|index| (index.name.clone(), index.into_value().config.into()))
125+
.collect();
102126
Self {
103127
added_indexes,
104128
removed_indexes,
129+
enabled_indexes,
130+
disabled_indexes,
105131
}
106132
}
107133
}
@@ -525,6 +551,20 @@ pub struct SerializedIndexDiff {
525551
SerializedNamedDeveloperIndexConfig>(), 0..4)")
526552
)]
527553
pub removed_indexes: Vec<SerializedNamedDeveloperIndexConfig>,
554+
#[cfg_attr(
555+
any(test, feature = "testing"),
556+
proptest(strategy = "prop::collection::vec(any::<
557+
SerializedNamedDeveloperIndexConfig>(), 0..4)")
558+
)]
559+
#[serde(default)]
560+
pub disabled_indexes: Vec<SerializedNamedDeveloperIndexConfig>,
561+
#[cfg_attr(
562+
any(test, feature = "testing"),
563+
proptest(strategy = "prop::collection::vec(any::<
564+
SerializedNamedDeveloperIndexConfig>(), 0..4)")
565+
)]
566+
#[serde(default)]
567+
pub enabled_indexes: Vec<SerializedNamedDeveloperIndexConfig>,
528568
}
529569

530570
impl From<AuditLogIndexDiff> for SerializedIndexDiff {
@@ -542,9 +582,13 @@ impl From<AuditLogIndexDiff> for SerializedIndexDiff {
542582
};
543583
let added_indexes = convert_to_serialized(diff.added_indexes);
544584
let removed_indexes = convert_to_serialized(diff.removed_indexes);
585+
let disabled_indexes = convert_to_serialized(diff.disabled_indexes);
586+
let enabled_indexes = convert_to_serialized(diff.enabled_indexes);
545587
Self {
546588
added_indexes,
547589
removed_indexes,
590+
disabled_indexes,
591+
enabled_indexes,
548592
}
549593
}
550594
}
@@ -565,9 +609,13 @@ impl TryFrom<SerializedIndexDiff> for AuditLogIndexDiff {
565609
};
566610
let added_indexes = convert_to_index_metadata(diff.added_indexes)?;
567611
let removed_indexes = convert_to_index_metadata(diff.removed_indexes)?;
612+
let disabled_indexes = convert_to_index_metadata(diff.disabled_indexes)?;
613+
let enabled_indexes = convert_to_index_metadata(diff.enabled_indexes)?;
568614
Ok(Self {
569615
added_indexes,
570616
removed_indexes,
617+
disabled_indexes,
618+
enabled_indexes,
571619
})
572620
}
573621
}

npm-packages/convex/src/cli/lib/components.ts

Lines changed: 31 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -447,44 +447,53 @@ function printDiff(
447447
if (rootDiff) {
448448
if (rootDiff.removed_indexes.length > 0) {
449449
let msg = `${opts.dryRun ? "Would delete" : "Deleted"} table indexes:\n`;
450-
for (let i = 0; i < rootDiff.removed_indexes.length; i++) {
451-
const index = rootDiff.removed_indexes[i];
452-
if (i > 0) {
453-
msg += "\n";
454-
}
455-
msg += ` [-] ${formatIndex(index)}`;
450+
for (const index of rootDiff.removed_indexes) {
451+
msg += ` [-] ${formatIndex(index)}\n`;
456452
}
453+
msg = msg.slice(0, -1); // strip last new line
457454
logFinishedStep(msg);
458455
}
459-
const addedStaged = rootDiff.added_indexes.filter((index) => index.staged);
460-
const addedEnabled = rootDiff.added_indexes.filter(
461-
(index) => !index.staged,
462-
);
456+
const addedStaged = rootDiff.added_indexes.filter((i) => i.staged);
457+
const addedEnabled = rootDiff.added_indexes.filter((i) => !i.staged);
463458
if (addedEnabled.length > 0) {
464459
let msg = `${opts.dryRun ? "Would add" : "Added"} table indexes:\n`;
465-
for (let i = 0; i < addedEnabled.length; i++) {
466-
const index = addedEnabled[i];
467-
if (i > 0) {
468-
msg += "\n";
469-
}
470-
msg += ` [+] ${formatIndex(index)}`;
460+
for (const index of addedEnabled) {
461+
msg += ` [+] ${formatIndex(index)}\n`;
471462
}
463+
msg = msg.slice(0, -1); // strip last new line
472464
logFinishedStep(msg);
473465
}
474466
if (addedStaged.length > 0) {
475467
let msg = `${opts.dryRun ? "Would add" : "Added"} staged table indexes:\n`;
476-
for (let i = 0; i < addedStaged.length; i++) {
477-
const index = addedStaged[i];
478-
if (i > 0) {
479-
msg += "\n";
480-
}
468+
for (const index of addedStaged) {
481469
const table = index.name.split(".")[0];
482470
const progressLink = deploymentDashboardUrlPage(
483471
opts.deploymentName,
484472
`/data?table=${table}&showIndexes=true`,
485473
);
486-
msg += ` [+] ${formatIndex(index)}, see progress: ${progressLink}`;
474+
msg += ` [+] ${formatIndex(index)}, see progress: ${progressLink}\n`;
475+
}
476+
msg = msg.slice(0, -1); // strip last new line
477+
logFinishedStep(msg);
478+
}
479+
if (rootDiff.enabled_indexes?.length > 0) {
480+
let msg = opts.dryRun
481+
? `These indexes would be enabled:\n`
482+
: `These indexes are now enabled:\n`;
483+
for (const index of rootDiff.enabled_indexes) {
484+
msg += ` [*] ${formatIndex(index)}\n`;
485+
}
486+
msg = msg.slice(0, -1); // strip last new line
487+
logFinishedStep(msg);
488+
}
489+
if (rootDiff.disabled_indexes?.length > 0) {
490+
let msg = opts.dryRun
491+
? `These indexes would be staged:\n`
492+
: `These indexes are now staged:\n`;
493+
for (const index of rootDiff.disabled_indexes) {
494+
msg += ` [*] ${formatIndex(index)}\n`;
487495
}
496+
msg = msg.slice(0, -1); // strip last new line
488497
logFinishedStep(msg);
489498
}
490499
}

npm-packages/convex/src/cli/lib/deployApi/finishPush.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,8 @@ export type DeveloperIndexConfig = z.infer<typeof developerIndexConfig>;
7373
export const indexDiff = looseObject({
7474
added_indexes: z.array(developerIndexConfig),
7575
removed_indexes: z.array(developerIndexConfig),
76+
enabled_indexes: z.array(developerIndexConfig),
77+
disabled_indexes: z.array(developerIndexConfig),
7678
});
7779
export type IndexDiff = z.infer<typeof indexDiff>;
7880

0 commit comments

Comments
 (0)