Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > sql > Дополнительная информация


Автор: awers 14.11.2009, 15:42
Помимо привычных файлов mysql4-{action}-{versions}.php можно использовать sql файлы.
Единственным нареканием может быть проблема с префиксами таблиц. Т.е. в этих файлах уже не используешь $this->getTable('tablename').
Вся проблема в том, как вызывается такой скрипт. Допустим для файлов php:
Код

case 'php':
                            $conn = $this->_conn;
                            /**
                             * useful variables:
                             * - $conn: setup db connection
                             * - $sqlFilesDir: root dir for sql update files
                             */
                            try {
                                #$conn->beginTransaction();
                                $result = include($sqlFile);
                                #$conn->commit();
                            } catch (Exception $e) {
                                #$conn->rollback();
                                throw ($e);
                            }
                            break;

А вот для sql
Код

case 'sql':
                            $sql = file_get_contents($sqlFile);
                            if ($sql!='') {
                                $result = $this->run($sql);
                            } else {
                                $result = true;
                            }
                            break;


И ещё. Одновременно можно использовать только 1 тип файлов установки/апгрейда/роллбэка. Т.е. нельзя сделать 2 файла mysql4-install-1.0.0.php и mysql4.install-1.0.0.sql и ждать что они оба сработают.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)