m231028_182350_permisos.php 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. <?php
  2. use yii\db\Migration;
  3. /**
  4. * Class m231028_182350_permisos
  5. */
  6. class m231028_182350_permisos extends Migration {
  7. public function safeUp() {
  8. $this->createTable('Modulo', [
  9. 'id' => $this->string(50),
  10. 'nombre' => $this->string(100),
  11. 'creado' => $this->timestamp() . ' with time zone',
  12. 'modificado' => $this->timestamp() . ' with time zone',
  13. 'eliminado' => $this->timestamp() . ' with time zone'
  14. ]);
  15. $this->addPrimaryKey('pk_Modulo', 'Modulo', 'id');
  16. $this->createTable('Permiso', [
  17. 'id' => $this->string(50),
  18. 'idModulo' => $this->string(50),
  19. 'nombre' => $this->string(100),
  20. 'descripcion' => $this->string(100),
  21. 'creado' => $this->timestamp() . ' with time zone',
  22. 'modificado' => $this->timestamp() . ' with time zone',
  23. 'eliminado' => $this->timestamp() . ' with time zone'
  24. ]);
  25. $this->addPrimaryKey('pk_Permiso', 'Permiso', 'id');
  26. $this->addForeignKey('fk_Permiso_Modulo', 'Permiso', 'idModulo', 'Modulo', 'id');
  27. $this->createTable('PermisoUsuario', [
  28. 'id' => $this->string(50),
  29. 'idUsuario' => $this->string(50),
  30. 'idPermiso' => $this->string(50),
  31. 'asignado' => $this->timestamp() . ' with time zone',
  32. 'modificado' => $this->timestamp() . ' with time zone',
  33. 'eliminado' => $this->timestamp() . ' with time zone'
  34. ]);
  35. $this->addPrimaryKey('pk_PermisoUsuario', 'PermisoUsuario', 'id');
  36. $this->addForeignKey('fk_PermisoUsuario_Usuario', 'PermisoUsuario', 'idUsuario', 'Usuario', 'id');
  37. $this->addForeignKey('fk_PermisoUsuario_Permiso', 'PermisoUsuario', 'idPermiso', 'Permiso', 'id');
  38. $this->createTable('ColeccionPermiso', [
  39. 'id' => $this->string(50),
  40. 'clave' => $this->string(50),
  41. "nombre" => $this->string(100),
  42. "descripcion" => $this->string(100),
  43. "creado" => $this->timestamp() . ' with time zone',
  44. "modificado" => $this->timestamp() . ' with time zone',
  45. "eliminado" => $this->timestamp() . ' with time zone'
  46. ]);
  47. $this->addPrimaryKey('pk_coleccion_permiso', 'ColeccionPermiso', 'id');
  48. $this->createTable('ColeccionPermisoPermiso', [
  49. 'idColeccion' => $this->string(50),
  50. 'idPermiso' => $this->string(50),
  51. "creado" => $this->timestamp() . ' with time zone',
  52. "modificado" => $this->timestamp() . ' with time zone',
  53. "eliminado" => $this->timestamp() . ' with time zone'
  54. ]);
  55. $this->addPrimaryKey('pk_coleccion_permiso_permiso', 'ColeccionPermisoPermiso', ['idColeccion', 'idPermiso']);
  56. $this->addForeignKey('fk_coleccion_permiso_permiso_coleccion', 'ColeccionPermisoPermiso', 'idColeccion', 'ColeccionPermiso', 'id');
  57. $this->addForeignKey('fk_coleccion_permiso_permiso_permiso', 'ColeccionPermisoPermiso', 'idPermiso', 'Permiso', 'id');
  58. }
  59. public function safeDown() {
  60. $this->dropForeignKey("fk_coleccion_permiso_permiso_coleccion", "ColeccionPermisoPermiso");
  61. $this->dropForeignKey("fk_coleccion_permiso_permiso_permiso", "ColeccionPermisoPermiso");
  62. $this->dropPrimaryKey("pk_coleccion_permiso_permiso", "ColeccionPermisoPermiso");
  63. $this->dropTable("ColeccionPermisoPermiso");
  64. $this->dropPrimaryKey("pk_coleccion_permiso", "ColeccionPermiso");
  65. $this->dropTable("ColeccionPermiso");
  66. $this->dropForeignKey('fk_PermisoUsuario_Permiso', 'PermisoUsuario');
  67. $this->dropForeignKey('fk_PermisoUsuario_Usuario', 'PermisoUsuario');
  68. $this->dropForeignKey('fk_Permiso_Modulo', 'Permiso');
  69. $this->dropTable('PermisoUsuario');
  70. $this->dropTable('Permiso');
  71. $this->dropTable('Modulo');
  72. }
  73. }