30 lines
937 B
TypeScript
30 lines
937 B
TypeScript
/* eslint-disable no-param-reassign */
|
|
import { pgEnum } from 'drizzle-orm/pg-core';
|
|
import { SanitizedCollectionConfig } from 'payload/dist/collections/config/types';
|
|
import type { Init } from 'payload/dist/database/types';
|
|
import { buildTable } from './schema/build';
|
|
import type { PostgresAdapter } from './types';
|
|
|
|
export const init: Init = async function init(this: PostgresAdapter) {
|
|
if (this.payload.config.localization) {
|
|
this.enums._locales = pgEnum(
|
|
'_locales',
|
|
this.payload.config.localization.locales as [string, ...string[]],
|
|
);
|
|
}
|
|
|
|
this.payload.config.collections.forEach((collection: SanitizedCollectionConfig) => {
|
|
buildTable({
|
|
adapter: this,
|
|
buildRelationships: true,
|
|
fields: collection.fields,
|
|
tableName: collection.slug,
|
|
timestamps: collection.timestamps,
|
|
});
|
|
});
|
|
|
|
this.payload.config.globals.forEach((global) => {
|
|
// create global model
|
|
});
|
|
};
|