woodpecker/docs/docs/92-development/07-guides.md
qwerty287 92cd0d04a3
Unify DB tables/columns (#3806)
Co-authored-by: Anbraten <6918444+anbraten@users.noreply.github.com>
2024-06-27 09:32:06 +02:00

1.4 KiB

Guides

ORM

Woodpecker uses Xorm as ORM for the database connection.

Add a new migration

Woodpecker uses migrations to change the database schema if a database model has been changed. Add the new migration task into server/store/datastore/migration/.

:::info Adding new properties to models will be handled automatically by the underlying ORM based on the struct field tags of the model. If you add a completely new model, you have to add it to the allBeans variable at server/store/datastore/migration/migration.go to get a new table created. :::

:::warning You should not use sess.Begin(), sess.Commit() or sess.Close() inside a migration. Session / transaction handling will be done by the underlying migration manager. :::

To automatically execute the migration after the start of the server, the new migration needs to be added to the end of migrationTasks in server/store/datastore/migration/migration.go. After a successful execution of that transaction the server will automatically add the migration to a list, so it won't be executed again on the next start.

Constants of official images

All official default images, are saved in shared/constant/constant.go and must be pinned by an exact tag.