mirror of
https://github.com/Dokploy/dokploy.git
synced 2026-07-05 22:15:22 +02:00
feat: implement rollback functionality with UI components and database schema updates
- Added ShowEnv and ShowRollbackSettings components for displaying and configuring rollback settings. - Implemented ShowRollbacks component to list and manage rollbacks for applications. - Created rollback database schema and updated application schema to include rollback settings. - Added API routes for managing rollbacks, including fetching, creating, and deleting rollbacks. - Integrated rollback functionality into the application deployment process.
This commit is contained in:
@@ -41,7 +41,10 @@ import {
|
||||
import { createTraefikConfig } from "@dokploy/server/utils/traefik/application";
|
||||
import { TRPCError } from "@trpc/server";
|
||||
import { eq } from "drizzle-orm";
|
||||
import { encodeBase64 } from "../utils/docker/utils";
|
||||
import {
|
||||
encodeBase64,
|
||||
prepareEnvironmentVariables,
|
||||
} from "../utils/docker/utils";
|
||||
import { getDokployUrl } from "./admin";
|
||||
import {
|
||||
createDeployment,
|
||||
@@ -60,6 +63,7 @@ import {
|
||||
updatePreviewDeployment,
|
||||
} from "./preview-deployment";
|
||||
import { validUniqueServerAppName } from "./project";
|
||||
import { createRollback } from "./rollbacks";
|
||||
export type Application = typeof applications.$inferSelect;
|
||||
|
||||
export const createApplication = async (
|
||||
@@ -214,6 +218,21 @@ export const deployApplication = async ({
|
||||
await updateDeploymentStatus(deployment.deploymentId, "done");
|
||||
await updateApplicationStatus(applicationId, "done");
|
||||
|
||||
if (application.rollbackActive) {
|
||||
const resolveEnvs = prepareEnvironmentVariables(
|
||||
application.env,
|
||||
application.project.env,
|
||||
);
|
||||
|
||||
console.log(resolveEnvs);
|
||||
|
||||
await createRollback({
|
||||
appName: application.appName,
|
||||
env: resolveEnvs.join("\n"),
|
||||
applicationId: applicationId,
|
||||
});
|
||||
}
|
||||
|
||||
await sendBuildSuccessNotifications({
|
||||
projectName: application.project.name,
|
||||
applicationName: application.name,
|
||||
|
||||
Reference in New Issue
Block a user