MySQLDB код для создания таблиц WordPress БД - PullRequest
0 голосов
/ 18 февраля 2011

Мне нужно создать базы данных WordPress, используя mysqldb, подключенный к серверу mysql, но используя код SQLAlchemy. SQL для таблицы выглядит следующим образом:

CREATE TABLE IF NOT EXISTS `wp_links` (
  `link_id` bigint(20) unsigned NOT NULL auto_increment,
  `link_url` varchar(255) NOT NULL default '',
  `link_name` varchar(255) NOT NULL default '',
  `link_image` varchar(255) NOT NULL default '',
  `link_target` varchar(25) NOT NULL default '',
  `link_description` varchar(255) NOT NULL default '',
  `link_visible` varchar(20) NOT NULL default 'Y',
  `link_owner` bigint(20) unsigned NOT NULL default '1',
  `link_rating` int(11) NOT NULL default '0',
  `link_updated` datetime NOT NULL default '0000-00-00 00:00:00',
  `link_rel` varchar(255) NOT NULL default '',
  `link_notes` mediumtext NOT NULL,
  `link_rss` varchar(255) NOT NULL default '',
  PRIMARY KEY  (`link_id`),
  KEY `link_visible` (`link_visible`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=8 ;

Это код Python, который я написал для того же:

wp_links = []#links table
wp_links.append (Table ('wp_links', metadata, Column ('link_id', BIGINT(20, unsigned=True),nullable=False, primary_key=True),
                        Column('link_url', VARCHAR(255), nullable=False, server_default=''),
                        Column('link_name', VARCHAR(255), nullable=False, server_default=''),
                        Column('link_image', VARCHAR(255), nullable=False, server_default=''),
                        Column('link_target', VARCHAR(255), nullable=False, server_default=''),
                        Column('link_description', VARCHAR(255), nullable=False, server_default=''),
                        Column('link_visible', VARCHAR(20), key='link_visible', nullable=False, server_default='Y'),
                        Column('link_owner', BIGINT(20, unsigned=True), nullable=False, server_default='1'),
                        Column('link_rating', INTEGER(11), nullable=False, server_default='0'),
                        Column('link_updated', DATETIME(), nullable=False, server_default='0000-00-00 00:00:00'),
                        Column('link_rel', VARCHAR(255), nullable=False, server_default=''),
                        Column('link_notes', MEDIUMTEXT(), nullable=False),
                        Column('link_rss', VARCHAR(255), nullable=False, server_default='')))

Что означает следующий SQL:

CREATE TABLE IF NOT EXISTS `wp_links` (
  `link_id` bigint(20) unsigned NOT NULL auto_increment,
  `link_url` varchar(255) NOT NULL default '',
  `link_name` varchar(255) NOT NULL default '',
  `link_image` varchar(255) NOT NULL default '',
  `link_target` varchar(255) NOT NULL default '',
  `link_description` varchar(255) NOT NULL default '',
  `link_visible` varchar(20) NOT NULL default 'Y',
  `link_owner` bigint(20) unsigned NOT NULL default '1',
  `link_rating` int(11) NOT NULL default '0',
  `link_updated` datetime NOT NULL default '0000-00-00 00:00:00',
  `link_rel` varchar(255) NOT NULL default '',
  `link_notes` mediumtext NOT NULL,
  `link_rss` varchar(255) NOT NULL default '',
  PRIMARY KEY  (`link_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

Обратите внимание на разницу: строка «KEY link_visible (link_visible)» отсутствует. Как мне исправить мой код Python, чтобы сделать их идентичными?

1 Ответ

0 голосов
/ 18 февраля 2011

Просмотр документации MYSQL:

KEY обычно является синонимом INDEX.Атрибут ключа PRIMARY KEY также может быть указан как просто KEY, если он задан в определении столбца.Это было реализовано для совместимости с другими системами баз данных.

, поэтому я бы посмотрел на

http://www.sqlalchemy.org/docs/core/schema.html#indexes

.автоматически сгенерированное имя ix_) для одного столбца с использованием ключевого слова встроенного индекса в столбце

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...