다음 튜토리얼 칼럼인 thinkphp Framework에서는 thinkPHP가 마이그레이션을 사용하여 데이터베이스 마이그레이션을 구현하는 방법을 소개합니다. 도움이 필요한 친구들에게 도움이 되길 바랍니다!
thinkPHP는 마이그레이션을 사용하여 데이터베이스 마이그레이션을 구현합니다
thinkPHP의 데이터베이스 마이그레이션 도구: topthink/think-migration
One: topthink/think-migration 설치
여기서 topthink/를 설치할 때 주의해야 할 점에 유의하세요. think-migration thinkPHP 버전, 여기 내 thinkPHP 버전은 5.1이므로 topthink/think-migration 버전 2.0을 설치할 수 있지만 버전 3.0은 설치할 수 없습니다. 설치가 완료된 후
composer require topthink/think-migration=2.0.*
, 명령줄에서 실행:
php think
다음은 마이그레이션이 성공적으로 설치되었음을 나타냅니다
둘: topthink/think-migration을 사용하여 데이터베이스 마이그레이션 구현
1: 마이그레이션 클래스 만들기
명령줄에서 실행
php think migrate:create CreateUser
실행이 완료되면 ./database/ migrations 디렉터리에 마이그레이션 마이그레이션 파일을 만듭니다.
2: 데이터베이스 마이그레이션 구현
Migrate 메서드 사용 설명서: http://docs.phinx .org/en/latest/migrations.html
[1]: 마이그레이션 코드 설명:
마이그레이션
up에는 세 가지 메소드가 있습니다: migration:run일 때 실행됩니다(변경 메소드가 파일에 존재하지 않는 경우).
down: migration:rollback 시 실행(파일에 변경 메소드가 없는 경우)
change: migration:run 및 migration:rollback 시 실행(이 메소드가 있으면 up 및 down이 실행되지 않음)
일반적인 상황에서는 일반적으로 마이그레이션 파일에서 변경 메소드를 삭제하고, up 메소드는 테이블 작업을 위해 특별히 배치되고, down 메소드는 테이블 삭제 및 필드 삭제 작업을 배치합니다.
(1) 테이블 추가:
// create the table $table = $this->table('user', ['id' => 'user_id', 'comment' => '用户表', 'engine' => 'MyISAM', '']); $table->addColumn('user_name', 'string', ['limit' => 15, 'default' => '', 'comment' => '用户名']) ->addColumn('password', 'string', ['limit' => 15, 'default' => '', 'comment' => '密码',]) ->addColumn('status', 'boolean', ['limit' => 1, 'default' => 0, 'comment' => '状态']) ->addIndex(['user_name'], ['unique' => true])//为user_name创建索引并设置唯一(唯一索引) ->addTimestamps()//默认生成create_time和update_time两个字段 ->create();
(2) 테이블 업데이트:
$this->table('user') ->addColumn('test', 'string', ['limit' => 15, 'default' => '', 'comment' => '测试'])//在user表中增加一个test字段 ->update();
(3) 테이블 삭제:
$this->table('user')->drop();
(4) 필드 삭제
$this->table('user') ->removeColumn('test')//删除user表中的test字段 ->save();
[2]: 마이그레이션 명령:
마이그레이션에 일반적으로 사용되는 세 가지 명령은 다음과 같습니다.
아아아아위 내용은 thinkPHP가 마이그레이션을 사용하여 데이터베이스 마이그레이션을 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!