link.ts 892 B

1234567891011121314151617181920212223242526272829303132333435
  1. import * as Knex from "knex";
  2. export async function createLinkTable(knex: Knex) {
  3. const hasTable = await knex.schema.hasTable("links");
  4. if (!hasTable) {
  5. await knex.schema.createTable("links", table => {
  6. table.increments("id").primary();
  7. table.string("address").notNullable();
  8. table
  9. .boolean("banned")
  10. .notNullable()
  11. .defaultTo(false);
  12. table
  13. .integer("banned_by_id")
  14. .references("id")
  15. .inTable("users");
  16. table
  17. .integer("domain_id")
  18. .references("id")
  19. .inTable("domains");
  20. table.string("password");
  21. table.string("target").notNullable();
  22. table
  23. .integer("user_id")
  24. .references("id")
  25. .inTable("users");
  26. table
  27. .integer("visit_count")
  28. .notNullable()
  29. .defaultTo(0);
  30. table.timestamps(false, true);
  31. });
  32. }
  33. }