定制 drarok/ladder1 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

drarok/ladder1

Composer 安装命令:

composer require drarok/ladder1

包简介

Database migration system written in PHP

README 文档

README

What is it?

Ladder started life as a very simple database migration system. It's grown over time to the beast you see before you. It's written in PHP 5, and supports the popular MySQL database server.

What would I use this for?

Well, we use it in conjunction with source control (SVN, Git, Mercurial, et al) in order to track the changes we make to the database alongside our source code.

This allows us all to work on a project and know whether or not we have applied various changes to our local development environments.

Migrations have at least two methods: up() and down(). The up() method is run when the migration hasn't been applied and should have been. down() is run when the migration is being removed from the database. Logically, a down() method should do the opposite to its counterpart up() method. Dropping a column instead of adding it, etc.

Cool. How do I use it?

If you're reading this file, you've already got it (or you're reading it on Github/BitBucket…). Have a look in the config/ directory. Copy each file ending in ".sample", and remove the ".sample" part. Edit your copies of the files, plugging in your own settings such as database server.

Also, in the root of the project (the directory where this file is), take a copy of ladder.php.sample, rename it to ladder.php, change any settings in there (usually works out of the box, unless you're going for an advanced setup), and run the ladder.php script: php ladder.php.

If you don't see a list of valid commands, something has gone wrong. Sorry about that!

To create a migration use php ladder.php create mymigration. Now edit the created migration file at migrations/00001_mymigration.php to specify the required actions for the migration.

Next use php ladder.php migrate to migrate the database.

Additionally, you can provide a migration number (or timestamp) to the migrate command in order to migrate to that specific point. The migrate command can be used to either migrate to a newer or older database scheme.

Does it do x or y?

I'd advise you to check the documentation, but unfortunately, you're reading it. A brief list of supported features follows:

  1. Table creation / alteration.
    Tables can be created - or altered if they already exist - seamlessly.

  2. Column additions, alterations, removal.
    Columns can be added to tables, altered, moved, and removed. Table->column(), Table->alter_column(), and Table->drop_column().

  3. Index creation and removal.
    Table->index(), and Table->drop_index().

  4. CSV import/unimport.
    CSVs can be imported, either by inserting the data, or updating based on optional fields. They can also be un-imported when the migration is removed. See the properties:

    • Migration->import_data
    • Migration->import_update
    • Migration->import_key_fields
    • Migration->unimport_data
    • Migration->unimport_key_fields
  5. Key-value storage per migration.
    This is a new one. It allows you to - for example - store the id of a new record you create in migration x, then later refer to that id in migration y. A real-world example of this might be creating a new news article, then later having to remove that exact article, even if a user has changed its content. Look at Migration->set(), Migration->get(), and Migration->remove().

Are there any examples?

If you create a new migration (php ladder.php create *migration_name*), the template that is created contains a lot of the options you can use, but commented out.

Alternatively, take a look at http://drarok.com/ladder/ - I'm adding some examples there as requests come in.

统计信息

  • 总下载量: 1.31k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 7
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 7
  • Watchers: 2
  • Forks: 5
  • 开发语言: PHP

其他信息

  • 授权协议: BSD-3-Clause
  • 更新时间: 2012-10-30

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固