рдЬрд╝реЗрдВрдб рдлреНрд░реЗрдорд╡рд░реНрдХ рдкрд░ рдПрдХ рдмрдбрд╝реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ, рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛ рдФрд░ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рдмреАрдЪ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рдЧрдпрд╛, рдЕрд░реНрдерд╛рддред рдЕрджреНрдпрддрди рдХреЗ рдЕрд▓рд╛рд╡рд╛, рддрдерд╛рдХрдерд┐рдд рдбрд╛рдЙрдВрдбреЗрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереАред рд░реЙрдм рдПрд▓рди (рдЗрд╕рдХреЗ рдмрд╛рдж рд▓реЗрдЦрдХ) "Akrabat_Db_Schema_Manager: рдЬрд╝реЗрдВрдб рдлреНрд░реЗрдорд╡рд░реНрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдорд╛рдЗрдЧреНрд░реЗрд╢рди" рджреНрд╡рд╛рд░рд╛ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рд▓реЗрдЦ рдЖрдпрд╛ред рдпрд╣ рд▓реЗрдЦ рдореВрд▓ рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдирд╣реАрдВ рд╣реИ, рдмрд▓реНрдХрд┐ рдЗрд╕рдХрд╛ рдПрдХ рд╕рдВрд╢реНрд▓реЗрд╖рдг рд╣реИ рдФрд░ рдЬреЛ рд╕рдорд╕реНрдпрд╛ рдЙрддреНрдкрдиреНрди рд╣реБрдИ рд╣реИред рдЗрд╕ рдкрд░ рдЪрд░реНрдЪрд╛ рд╣реЛрдЧреАред
рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдкрд░рд┐рд╡рд░реНрддрди (рдХреЙрд▓рдо, рдЯреЗрдмрд▓, рдЗрдВрдбреЗрдХреНрд╕, рдЪрд╛рдмрд┐рдпрд╛рдБ, рдЖрджрд┐ рдЬреЛрдбрд╝рдХрд░) рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ рдПрдХ рдЕрд▓рдЧ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдРрд╕реА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ ./scripts/migrations рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рд░рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдЦрдХ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдХреЛ 001-CreateUserTable.php рдХреЗ рд░реВрдк рдореЗрдВ рдирд╛рдо рджреЗрдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрддрд╛ рд╣реИред рд╕рдВрдЦреНрдпрд╛ рдЙрд╕ рдХреНрд░рдо рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреА рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдпреЗ рдлрд╛рдЗрд▓реЗрдВ рд▓реЙрдиреНрдЪ рдХреА рдЬрд╛рдПрдВрдЧреА, рдЕрд░реНрдерд╛рдд рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ
[рдХреНрд░рдо рд╕рдВрдЦреНрдпрд╛] - [рдкреНрд░рд╡рд╛рд╕ рдХрд╛ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╡рд┐рд╡рд░рдг] .php ред рд▓реЗрдХрд┐рди рдпрд╣ рдЗрддрдирд╛ рдЬреНрдЮрд╛рдирд╡рд░реНрдзрдХ рдирд╣реАрдВ рд╣реИред рдЗрд╕рд▓рд┐рдП, рд╣рдордиреЗ рдкреНрд░рд╡рд╛рд╕ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛
[рд╕рдВрд╢реЛрдзрди рд╕рдВрдЦреНрдпрд╛] - [рдкреНрд░рд╡рд╛рд╕ рдХрд╛ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╡рд┐рд╡рд░рдг] .php ред рдЬреЛ рд▓реЛрдЧ hg рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЙрдирдХреЗ рд▓рд┐рдП рдЪреЗрдВрдЬрд╕реЗрдЯ рдХреНрд░рдо рд╕рдВрдЦреНрдпрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рд╕рдВрдмрдВрдз рдореЗрдВ, рдореБрдЭреЗ рдХрдХреНрд╖рд╛ Akrabat_Db_Schema_Manager рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдирд╛ рдкрдбрд╝рд╛, рдХреНрдпреЛрдВрдХрд┐ рдПрдХ рдПрдХрд▓ рд╕рдВрд╢реЛрдзрди рдореЗрдВ рдХрдИ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рд╢рд╛рдорд┐рд▓ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдлрд╝рд╛рдЗрд▓ рдирд╛рдореЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред _GetMigrationFiles () рд╡рд┐рдзрд┐ рдлрд╝реЙрд░реНрдо рдХреА рдПрдХ рд╕рд░рдгреА рд╡рд╛рдкрд╕ рдирд╣реАрдВ рдХрд░рддреА рд╣реИ:
$files["v$versionNumber"] = array( 'path'=>$path, 'filename'=>$entry, 'version'=>$versionNumber, 'classname'=>$className); : $files["v$versionNumber"][] = array( 'path'=>$path, 'filename'=>$entry, 'version'=>$versionNumber, 'classname'=>$className);
рддрджрдиреБрд╕рд╛рд░, рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдиреЗ _processFile ($ рдорд╛рдЗрдЧреНрд░реЗрд╢рди, $ рджрд┐рд╢рд╛) рд╡рд┐рдзрд┐ рдХреЛ рднреА рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд┐рдпрд╛, рдЬрд┐рд╕рдореЗрдВ $ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдПрдХ рд╕рд░рдгреА рдХреЗ рд░реВрдк рдореЗрдВ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рдПрдХ рд╕рд░рдгреА рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдХреМрди
рдкрд░рд╡рд╛рд╣ рдХрд░рддрд╛ рд╣реИ , рдореИрдВ
GitHub рдкрд░ рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рд╕реНрд░реЛрдд рдХреЛрдб рдкреЛрд╕реНрдЯ рдХрд░реВрдВрдЧрд╛, рд▓реЗрдХрд┐рди рдЕрдм рдореИрдВ рдореБрдЦреНрдп рдЕрдиреБрдХреВрд▓рди рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реВрдВрдЧрд╛ред
рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдореЗрдВ Akrabat_Db_Schema_AbstractChange рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ рдПрдХ рд╡рд░реНрдЧ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдореЗрдВ рджреЛ рд╡рд┐рдзрд┐рдпрд╛рдБ рд╣реЛрддреА рд╣реИрдВ: рдКрдкрд░ () рдФрд░ рдиреАрдЪреЗ ()ред рдКрдкрд░ () рд╡рд┐рдзрд┐ рдбреЗрдЯрд╛рдмреЗрд╕ рдЕрджреНрдпрддрди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдиреАрдЪреЗ () - рдПрдХ рд╕рдВрд╢реЛрдзрди рд░реЛрд▓рдмреИрдХ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВред рдпрд╣рд╛рдБ рдереЛрдбрд╝рд╛ рд╕рдВрд╢реЛрдзрд┐рдд рдЙрджрд╛рд╣рд░рдг рд╣реИ рдХрд┐ рд▓реЗрдЦрдХ рдХрд╛ рд╣рд╡рд╛рд▓рд╛ рджреЗрддреЗ рд╣реИрдВ:
class CreateUsersTable extends Akrabat_Db_Schema_AbstractChange { function up() { $tableName = $this->_tablePrefix . 'users'; $sql = "CREATE TABLE IF NOT EXISTS $tableName ( id int(11) NOT NULL AUTO_INCREMENT, username varchar(50) NOT NULL, password varchar(75) NOT NULL, roles varchar(200) NOT NULL DEFAULT 'user', PRIMARY KEY (id) )"; $this->_db->query($sql); $data = array(); $data['username'] = 'admin'; $data['password'] = sha1('password'); $data['roles'] = 'user,admin'; $this->_db->insert('users', $data); } function down() { $tableName = $this->_tablePrefix . 'users'; $sql = "DROP TABLE IF EXISTS $tableName"; $this->_db->query($sql); } }
рдЙрджрд╛рд╣рд░рдг рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдЙрдкрд╕рд░реНрдЧ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдХрд┐ рд╡рд┐рдиреНрдпрд╛рд╕ рдлрд╛рдЗрд▓ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╣реИ, рдореБрдЦреНрдп
рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдореЗрдВ редb.table_prefix ред рд▓реЗрдХрд┐рди рдлрд┐рд░ рд╕реЗ 1 рдорд╛рдЗрдирд╕ рд╣реИ, рдХреНрд▓рд╛рд╕ рдХрд╛ рдирд╛рдо
[рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдХрд╛ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╡рд┐рд╡рд░рдг] рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ, рдФрд░ рдЕрдЧрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХрдо рд╕реЗ рдХрдо 2 рд╕рдорд╛рди рд╡рд┐рд╡рд░рдг рд╣реИрдВ, рддреЛ рдШрд╛рддрдХ рддреНрд░реБрдЯрд┐: рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рд╡рд░реНрдЧ рджреБрд░реНрдШрдЯрдирд╛рдЧреНрд░рд╕реНрдд рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, 'рдХреНрд▓рд╛рд╕рдирд╛рдо' рд╕рд░рдгреА рдХреЗ рд╕реВрдЪрдХрд╛рдВрдХ рдХреЛ рдЗрд╕ рд░реВрдк рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ
'classname' => $className.$versionNumber
рдФрд░ рдЗрд╕реА рддрд░рд╣ рд╣рдо рдХрдХреНрд╖рд╛ рдХреЛ рдмреБрд▓рд╛рддреЗ рд╣реИрдВ - рдпрд╣ рд╣рдореЗрдВ рдЧрд▓рддрд┐рдпреЛрдВ рд╕реЗ рдмрдЪрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред
рдФрд░ рдЕрдм - рд╕рдмрд╕реЗ рд╕реНрд╡рд╛рджрд┐рд╖реНрдЯред рд╣рдо рдЗрд╕ рд╕рднреА рд╕реБрдВрджрд░рддрд╛ рдХреЛ рдЬреЗрдВрдб рдЯреВрд▓ рдореЗрдВ рдмрд╛рдВрдз рджреЗрддреЗ рд╣реИрдВред рдореИрдВ рдЖрдкрдХреЛ рдирд╣реАрдВ рдмрддрд╛рддрд╛ рдХрд┐ Zend Tool рдХреЛ рдХреИрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдП, рдЙрдиреНрд╣реЛрдВрдиреЗ рдкрд╣рд▓реЗ рд╣реА рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рдХреБрдЫ рд▓рд┐рдЦрд╛ рд╣реИред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЖрдЗрдП рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЕрдХрд░рдмрд╛рдд рдЬреЗрдбрдПрдл рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рдХрд╣рд╛рдВ рд╕реНрдЯреЛрд░ рдХрд░рдирд╛ рд╣реИ, рдореИрдВ рд╕рднреА PHP рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ / usr / share / php / рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдЗрд╕рдХрд╛ рдкрде / usr / share / php / Akrabat рд╣реЛрдЧрд╛ред рдмрд╛рдХреА рд╕рд░рд▓ рд╣реИ:
$ zf --setup storage-directory $ zf --setup config-file $ echo "`php -r 'echo get_include_path().PATH_SEPARATOR;'`/usr/share/php/Akrabat">~/.zf.ini $ echo 'basicloader.classes.0 = "Akrabat_Tool_DatabaseSchemaProvider"'>>~/.zf.ini
рдЕрдм рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:
$ zf ? database-schema
рдХреБрдЫ рдЗрд╕реА рддрд░рд╣ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рд┐рдП:
Zend Framework Command Line Console Tool v1.11.11 Actions supported by provider "DatabaseSchema" DatabaseSchema zf update database-schema env[=development] dir[=./scripts/migrations] zf update-to database-schema version env[=development] dir[=./scripts/migrations] zf decrement database-schema versions[=1] env[=development] dir[=./scripts/migrations] zf increment database-schema versions[=1] env[=development] dir[=./scripts/migrations] zf current database-schema env[=development] dir[=./migrations] zf get-table-prefix database-schema
рд╕реВрддреНрд░реЛрдВ рдХрд╛ рдХрд╣рдирд╛ рд╣реИ
- рд▓реЗрдЦрдХ рд▓реЗрдЦ
- GitHub.com рдкрд░ Akrabat ZF рд▓рд╛рдЗрдмреНрд░реЗрд░реА