m170716_175707_create_identity_cert_subject_table.php 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. <?php
  2. namespace fphammerle\yii2\auth\clientcert\migrations;
  3. use fphammerle\yii2\auth\clientcert\Subject;
  4. class m170716_175707_create_identity_cert_subject_table extends \yii\db\Migration
  5. {
  6. public function safeUp()
  7. {
  8. $identity_id_schema = Subject::getIdentityIdSchema();
  9. $identity_id_builder = $this->db->schema->createColumnSchemaBuilder(
  10. $identity_id_schema->dbType,
  11. $identity_id_schema->size
  12. );
  13. $this->createTable(Subject::tableName(), [
  14. 'id' => $this->primaryKey(),
  15. 'identity_id' => $identity_id_builder->notNull(),
  16. 'distinguished_name' => $this->string()->notNull()->unique(),
  17. ]);
  18. if($this->db->driverName != 'sqlite') {
  19. $this->addForeignKey(
  20. Subject::tableName() . '_identity',
  21. Subject::tableName(),
  22. 'identity_id',
  23. Subject::getIdentityTableSchema()->name,
  24. $identity_id_schema->name,
  25. 'cascade',
  26. 'restrict'
  27. );
  28. }
  29. }
  30. public function safeDown()
  31. {
  32. $this->dropTable(Subject::tableName());
  33. }
  34. }