@@ -10,7 +10,7 @@ import { ensureApis } from "../../../dataconnect/ensureApis";
10
10
import { listLocations , listAllServices , getSchema } from "../../../dataconnect/client" ;
11
11
import { Schema , Service } from "../../../dataconnect/types" ;
12
12
import { DEFAULT_POSTGRES_CONNECTION } from "../emulators" ;
13
- import { parseServiceName } from "../../../dataconnect/names" ;
13
+ import { parseCloudSQLInstanceName , parseServiceName } from "../../../dataconnect/names" ;
14
14
import { logger } from "../../../logger" ;
15
15
16
16
const TEMPLATE_ROOT = resolve ( __dirname , "../../../../templates/init/dataconnect/" ) ;
@@ -67,6 +67,10 @@ export async function doSetup(setup: Setup, config: Config): Promise<void> {
67
67
const subbedDataconnectYaml = subValues ( DATACONNECT_YAML_TEMPLATE , info ) ;
68
68
const subbedConnectorYaml = subValues ( CONNECTOR_YAML_TEMPLATE , info ) ;
69
69
70
+ if ( ! config . has ( "dataconnect" ) ) {
71
+ config . set ( "dataconnect.source" , dir ) ;
72
+ config . set ( "dataconnect.location" , info . locationId ) ;
73
+ }
70
74
await config . askWriteProjectFile ( join ( dir , "dataconnect.yaml" ) , subbedDataconnectYaml ) ;
71
75
await config . askWriteProjectFile ( join ( dir , "schema" , "schema.gql" ) , SCHEMA_TEMPLATE ) ;
72
76
await config . askWriteProjectFile (
@@ -78,6 +82,7 @@ export async function doSetup(setup: Setup, config: Config): Promise<void> {
78
82
join ( dir , info . connectorId , "mutations.gql" ) ,
79
83
MUTATIONS_TEMPLATE ,
80
84
) ;
85
+
81
86
if (
82
87
setup . projectId &&
83
88
( info . isNewInstance || info . isNewDatabase ) &&
@@ -156,8 +161,12 @@ async function promptForService(setup: Setup, info: RequiredInfo): Promise<Requi
156
161
info . serviceId = serviceName . serviceId ;
157
162
info . locationId = serviceName . location ;
158
163
if ( choice . schema ) {
159
- info . cloudSqlInstanceId =
160
- choice . schema . primaryDatasource . postgresql ?. cloudSql . instance ?? "" ;
164
+ if ( choice . schema . primaryDatasource . postgresql ?. cloudSql . instance ) {
165
+ const instanceName = parseCloudSQLInstanceName (
166
+ choice . schema . primaryDatasource . postgresql ?. cloudSql . instance ,
167
+ ) ;
168
+ info . cloudSqlInstanceId = instanceName . instanceId ;
169
+ }
161
170
info . cloudSqlDatabase = choice . schema . primaryDatasource . postgresql ?. database ?? "" ;
162
171
}
163
172
}
@@ -243,11 +252,6 @@ async function promptForDatabase(
243
252
config : Config ,
244
253
info : RequiredInfo ,
245
254
) : Promise < RequiredInfo > {
246
- const dir : string = config . get ( "dataconnect.source" ) || "dataconnect" ;
247
- if ( ! config . has ( "dataconnect" ) ) {
248
- config . set ( "dataconnect.source" , dir ) ;
249
- config . set ( "dataconnect.location" , info . locationId ) ;
250
- }
251
255
if ( ! info . isNewInstance && setup . projectId ) {
252
256
try {
253
257
const dbs = await cloudsql . listDatabases ( setup . projectId , info . cloudSqlInstanceId ) ;
0 commit comments