domain.model.js 922 B

123456789101112131415161718192021222324252627282930313233343536
  1. async function createDomainTable(knex) {
  2. const hasTable = await knex.schema.hasTable("domains");
  3. if (!hasTable) {
  4. await knex.schema.raw('create extension if not exists "uuid-ossp"');
  5. await knex.schema.createTable("domains", table => {
  6. table.increments("id").primary();
  7. table
  8. .boolean("banned")
  9. .notNullable()
  10. .defaultTo(false);
  11. table
  12. .integer("banned_by_id")
  13. .references("id")
  14. .inTable("users");
  15. table
  16. .string("address")
  17. .unique()
  18. .notNullable();
  19. table.string("homepage").nullable();
  20. table
  21. .integer("user_id")
  22. .references("id")
  23. .inTable("users")
  24. .onDelete("SET NULL");
  25. table
  26. .uuid("uuid")
  27. .notNullable()
  28. .defaultTo(knex.raw("uuid_generate_v4()"));
  29. table.timestamps(false, true);
  30. });
  31. }
  32. }
  33. module.exports = {
  34. createDomainTable
  35. }