mirror of
https://github.com/nestriness/nestri.git
synced 2025-12-12 08:45:38 +02:00
feat: Add database
This commit is contained in:
45
cloud/infra/database.ts
Normal file
45
cloud/infra/database.ts
Normal file
@@ -0,0 +1,45 @@
|
||||
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,
|
||||
},
|
||||
});
|
||||
Reference in New Issue
Block a user