Sphinx не может создавать таблицы, потому что первая таблица ссылается на другую таблицу, но мне было гарантировано, что она работает (протестировано в MariaDB и MySQL CE)

#mysql #sql #sphinx

#mysql #sql #sphinx

Вопрос:

Я получаю эту ошибку с MySQL CE:

   [PDOException]
  SQLSTATE[HY000]: General error: 1824 Failed to open the referenced table 'application'
  

История: я только что присоединился к компании в качестве фрилансера, и они предоставили мне доступ к Phabricator. Я загрузил их API из своего репозитория, и теперь я пытаюсь его настроить. Сначала создайте таблицы migrate , а затем заполните их начальными значениями. Платформа Phalcon, а данные БД находятся в приложении / базе данных. Что здесь может быть не так? Я вижу, что первая таблица ссылается на другую таблицу. Мой друг говорит, что здесь нет проблем. Что может быть не так с моей стороны?

Вот первый файл миграции SQL. Их более 20, но эта создает проблемы.

     public function change()
    {
        $table = $this->table('team');
        $table->addColumn('name', 'string', [
            'limit' => 255,
            'null'  => false
        ])
        ->addColumn('abbrev', 'string', [
            'limit' => 32,
            'null'  => false
        ])
        ->addColumn('stripe_account_id', 'string', [
            'null' => true
        ])
        ->addColumn('fee_rate', 'float', [
            'null' => false,
            'default' => 0.05
        ])
        ->addColumn('application_id', 'integer', [
            'limit' => 11,
        ])
        ->addIndex('application_id', ['name' => 'fk_team_application_idx'])
        ->addForeignKey('application_id', 'application', 'id',
            array('delete'=> 'CASCADE', 'update'=> 'CASCADE'))
        ->create();
    }
}
  

Комментарии:

1. Было бы очень полезно, если бы вы отредактировали свой вопрос и показали код, вызывающий ошибку, включая любой оператор SQL.

2. @SloanThrasher Готово. Тем не менее, существует более 18 файлов, все из которых создают разные таблицы.

3. Существует ли таблица приложений? Если это так, вам может потребоваться включить имя базы данных в имя таблицы. Не уверен, но вы можете попробовать,

4. Вам, возможно, лучше иметь скрипт для создания таблиц без внешних ключей, а затем, когда все они будут созданы, добавьте внешние ключи. Вам также нужно будет отслеживать эти ключи, чтобы определить порядок, в котором вы копируете данные в таблицы.