CreateDisabledPersonPhoneTable1768970000000.ts 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. import { MigrationInterface, QueryRunner, Table, TableForeignKey, TableIndex } from "typeorm";
  2. /**
  3. * 创建残疾人本人电话表
  4. *
  5. * 用于支持残疾人本人多个电话号码,与监护人电话表结构保持一致
  6. *
  7. * 注:此迁移是手动创建的,因为 migration:generate 在此项目中不可靠
  8. */
  9. export class CreateDisabledPersonPhoneTable1768970000000 implements MigrationInterface {
  10. name = 'CreateDisabledPersonPhoneTable1768970000000';
  11. public async up(queryRunner: QueryRunner): Promise<void> {
  12. await queryRunner.createTable(
  13. new Table({
  14. name: "disabled_person_phone",
  15. columns: [
  16. {
  17. name: "id",
  18. type: "int",
  19. isPrimary: true,
  20. isGenerated: true,
  21. generationStrategy: "increment",
  22. comment: "本人电话ID",
  23. },
  24. {
  25. name: "person_id",
  26. type: "int",
  27. isNullable: false,
  28. comment: "残疾人ID",
  29. },
  30. {
  31. name: "phone_number",
  32. type: "varchar",
  33. length: "20",
  34. isNullable: false,
  35. comment: "本人电话号码",
  36. },
  37. {
  38. name: "is_primary",
  39. type: "smallint",
  40. default: 0,
  41. isNullable: false,
  42. comment: "是否为主要联系电话:1-是,0-否",
  43. },
  44. ],
  45. }),
  46. true
  47. );
  48. // 创建外键约束 - 注意:disabled_person 表的主键是 person_id
  49. await queryRunner.createForeignKey(
  50. "disabled_person_phone",
  51. new TableForeignKey({
  52. columnNames: ["person_id"],
  53. referencedColumnNames: ["person_id"],
  54. referencedTableName: "disabled_person",
  55. onDelete: "CASCADE",
  56. onUpdate: "CASCADE",
  57. })
  58. );
  59. // 创建索引
  60. await queryRunner.createIndex(
  61. "disabled_person_phone",
  62. new TableIndex({
  63. name: "idx_disabled_person_phone_person_id",
  64. columnNames: ["person_id"],
  65. })
  66. );
  67. }
  68. public async down(queryRunner: QueryRunner): Promise<void> {
  69. await queryRunner.dropTable("disabled_person_phone", true);
  70. }
  71. }