mirror of
https://github.com/nestriness/nestri.git
synced 2025-12-11 00:05:36 +02:00
46 lines
990 B
TypeScript
46 lines
990 B
TypeScript
const dbProject = neon.getProjectOutput({
|
|
id: "curly-fire-59112557",
|
|
});
|
|
|
|
const dbBranchId =
|
|
$app.stage !== "production"
|
|
? new neon.Branch("NeonBranch", {
|
|
parentId: dbProject.defaultBranchId,
|
|
projectId: dbProject.id,
|
|
name: $app.stage,
|
|
}).id
|
|
: dbProject.defaultBranchId;
|
|
|
|
const dbEndpoint = new neon.Endpoint("NeonEndpoint", {
|
|
projectId: dbProject.id,
|
|
branchId: dbBranchId,
|
|
poolerEnabled: true,
|
|
type: "read_write",
|
|
});
|
|
|
|
const dbRole = new neon.Role("NeonRole", {
|
|
name: `nestri-${$app.stage}-role`,
|
|
branchId: dbBranchId,
|
|
projectId: dbProject.id,
|
|
});
|
|
|
|
const db = new neon.Database(
|
|
"NeonDatabase",
|
|
{
|
|
branchId: dbBranchId,
|
|
projectId: dbProject.id,
|
|
ownerName: dbRole.name,
|
|
name: `nestri-${$app.stage}`,
|
|
},
|
|
{ dependsOn: [dbRole] },
|
|
);
|
|
|
|
export const database = new sst.Linkable("Database", {
|
|
properties: {
|
|
name: db.name,
|
|
user: dbRole.name,
|
|
host: dbEndpoint.host,
|
|
password: dbRole.password,
|
|
},
|
|
});
|