Skip to content

Commit 2a65428

Browse files
committed
CLI: Improve databases management
1 parent 881a694 commit 2a65428

File tree

3 files changed

+58
-2
lines changed

3 files changed

+58
-2
lines changed

templates/cli/lib/commands/deploy.js.twig

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -430,17 +430,27 @@ const deployCollection = async ({ all, yes } = {}) => {
430430

431431
let databaseId;
432432

433+
const localDatabase = localConfig.getDatabase(collection.databaseId);
434+
433435
try {
434436
const database = await databasesGet({
435437
databaseId: collection.databaseId,
436438
parseOutput: false,
437439
});
438440
databaseId = database.$id;
441+
442+
await databasesUpdate({
443+
databaseId: collection.databaseId,
444+
name: localDatabase.name ?? collection.databaseId,
445+
parseOutput: false
446+
})
447+
448+
success(`Updated ${localDatabase.name} ( ${collection.databaseId} )`);
439449
} catch(err) {
440450
log(`Database ${collection.databaseId} not found. Creating it now...`);
441451
const database = await databasesCreate({
442452
databaseId: collection.databaseId,
443-
name: collection.databaseId,
453+
name: localDatabase.name ?? collection.databaseId,
444454
parseOutput: false,
445455
});
446456
databaseId = database.$id;

templates/cli/lib/commands/init.js.twig

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,13 @@ const initCollection = async ({ all, databaseId } = {}) => {
167167
}
168168

169169
for(const databaseId of databaseIds) {
170+
const database = await databasesGet({
171+
databaseId,
172+
parseOutput: false
173+
});
174+
175+
localConfig.addDatabase(database);
176+
170177
// TODO: Pagination?
171178
let response = await databasesListCollections({
172179
databaseId,

templates/cli/lib/config.js.twig

Lines changed: 40 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,8 +134,15 @@ class Local extends Config {
134134
return this.get("collections");
135135
}
136136

137+
getDatabases() {
138+
if (!this.has("databases")) {
139+
return [];
140+
}
141+
return this.get("databases");
142+
}
143+
137144
getCollection($id) {
138-
if (!this.has("collection")) {
145+
if (!this.has("collections")) {
139146
return {};
140147
}
141148

@@ -149,6 +156,21 @@ class Local extends Config {
149156
return {};
150157
}
151158

159+
getDatabase($id) {
160+
if (!this.has("databases")) {
161+
return {};
162+
}
163+
164+
let databases = this.get("databases");
165+
for (let i = 0; i < databases.length; i++) {
166+
if (databases[i]['$id'] == $id) {
167+
return databases[i];
168+
}
169+
}
170+
171+
return {};
172+
}
173+
152174
addCollection(props) {
153175
if (!this.has("collections")) {
154176
this.set("collections", []);
@@ -166,6 +188,23 @@ class Local extends Config {
166188
this.set("collections", collections);
167189
}
168190

191+
addDatabase(props) {
192+
if (!this.has("databases")) {
193+
this.set("databases", []);
194+
}
195+
196+
let databases = this.get("databases");
197+
for (let i = 0; i < databases.length; i++) {
198+
if (databases[i]['$id'] == props['$id']) {
199+
databases[i] = props;
200+
this.set("databases", databases);
201+
return;
202+
}
203+
}
204+
databases.push(props);
205+
this.set("databases", databases);
206+
}
207+
169208
getProject() {
170209
if (!this.has("projectId") || !this.has("projectName")) {
171210
return {};

0 commit comments

Comments
 (0)