77 lines
2.8 KiB
TypeScript
77 lines
2.8 KiB
TypeScript
export type TableSchema = {
|
|
name: string,
|
|
columns: {
|
|
name: string,
|
|
type: string,
|
|
constraint: string,
|
|
}[],
|
|
}
|
|
|
|
export default [
|
|
{
|
|
name: 'article',
|
|
columns: [
|
|
{ name: 'seq', type: 'serial', constraint: 'primary key' },
|
|
{ name: 'id', type: 'text', constraint: 'not null' },
|
|
{ name: 'released_at', type: 'timestamp', constraint: 'not null' },
|
|
{ name: 'updated_at', type: 'timestamp', constraint: 'not null' },
|
|
{ name: 'author', type: 'text', constraint: 'not null' },
|
|
{ name: 'email', type: 'text', constraint: 'not null' },
|
|
{ name: 'title', type: 'text', constraint: 'not null' },
|
|
{ name: 'category', type: 'text', constraint: 'not null' },
|
|
{ name: 'tags', type: 'text[]', constraint: 'not null' },
|
|
{ name: 'image', type: 'text', constraint: '' },
|
|
{ name: 'publish', type: 'text', constraint: 'not null' },
|
|
{ name: 'content', type: 'text', constraint: 'not null' },
|
|
],
|
|
},
|
|
{
|
|
name: 'article_comment',
|
|
columns: [
|
|
{ name: 'id', type: 'serial', constraint: 'primary key' },
|
|
{ name: 'article', type: 'integer', constraint: 'not null' },
|
|
{ name: 'posted_at', type: 'timestamp', constraint: 'not null' },
|
|
{ name: 'content', type: 'text', constraint: 'not null' },
|
|
],
|
|
},
|
|
{
|
|
name: 'thread',
|
|
columns: [
|
|
{ name: 'seq', type: 'serial', constraint: 'primary key' },
|
|
{ name: 'id', type: 'text', constraint: 'not null' },
|
|
{ name: 'title', type: 'text', constraint: 'not null' },
|
|
{ name: 'category', type: 'text', constraint: 'not null' },
|
|
{ name: 'created_at', type: 'timestamp', constraint: 'not null' },
|
|
{ name: 'updated_at', type: 'timestamp', constraint: 'not null' },
|
|
{ name: 'tags', type: 'text[]', constraint: 'not null' },
|
|
{ name: 'content', type: 'text', constraint: 'not null' },
|
|
],
|
|
},
|
|
{
|
|
name: 'thread_post',
|
|
columns: [
|
|
{ name: 'seq', type: 'serial', constraint: 'primary key' },
|
|
{ name: 'thread_id', type: 'integer', constraint: 'not null' },
|
|
{ name: 'title', type: 'text', constraint: 'not null' },
|
|
{ name: 'posted_at', type: 'timestamp', constraint: 'not null' },
|
|
{ name: 'content', type: 'text', constraint: 'not null' },
|
|
],
|
|
},
|
|
{
|
|
name: 'thread_comment',
|
|
columns: [
|
|
{ name: 'id', type: 'serial', constraint: 'primary key' },
|
|
{ name: 'thread', type: 'integer', constraint: 'not null' },
|
|
{ name: 'posted_at', type: 'timestamp', constraint: 'not null' },
|
|
{ name: 'content', type: 'text', constraint: 'not null' },
|
|
],
|
|
},
|
|
{
|
|
name: 'tag',
|
|
columns: [
|
|
{ name: 'seq', type: 'serial', constraint: 'primary key' },
|
|
{ name: 'name', type: 'text', constraint: 'not null' },
|
|
{ name: 'ref_count', type: 'integer', constraint: 'not null' },
|
|
],
|
|
}
|
|
] as TableSchema[]; |