domain.model.js 969 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  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. .unsigned()
  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. .unsigned();
  23. table
  24. .foreign("user_id")
  25. .references("id")
  26. .inTable("users")
  27. .onDelete("SET NULL")
  28. .withKeyName("domains_user_id_foreign");
  29. table
  30. .uuid("uuid")
  31. .notNullable()
  32. .defaultTo(knex.fn.uuid());
  33. table.timestamps(false, true);
  34. });
  35. }
  36. }
  37. module.exports = {
  38. createDomainTable
  39. }