domain.model.js 929 B

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