title: #1005 - Can't create table errno: 150 Magento
body: <p>I am trying to create a new table for magento and I am trying to reference existing magento tables. From what I googled, the problem that I am getting can be 1 of the 2 issues.</p>
  
  <ol>
  <li>The FK must have a index</li>
  <li>The PK must exist before the FK can reference</li>
  </ol>
  
  <p>In both cases, I believe I did both of these correctly. Below is existing table schemas</p>
  
  <h1>ALREADY EXISTING TABLES BEING REFERENCED</h1>
  
  <pre><code>CREATE TABLE IF NOT EXISTS `core_store` (
    `store_id` smallint(5) unsigned NOT NULL AUTO_INCREMENT,
    `code` varchar(32) NOT NULL DEFAULT '',
    `website_id` smallint(5) unsigned DEFAULT '0',
    `group_id` smallint(5) unsigned NOT NULL DEFAULT '0',
    `name` varchar(255) NOT NULL,
    `sort_order` smallint(5) unsigned NOT NULL DEFAULT '0',
    `is_active` tinyint(1) unsigned NOT NULL DEFAULT '0',
    PRIMARY KEY (`store_id`),
    UNIQUE KEY `code` (`code`),
    KEY `FK_STORE_WEBSITE` (`website_id`),
    KEY `is_active` (`is_active`,`sort_order`),
    KEY `FK_STORE_GROUP` (`group_id`)
  ) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COMMENT='Stores' AUTO_INCREMENT=9 ;
  
  
  CREATE TABLE IF NOT EXISTS `admin_user` (
    `user_id` mediumint(9) unsigned NOT NULL AUTO_INCREMENT,
    `firstname` varchar(32) NOT NULL DEFAULT '',
    `lastname` varchar(32) NOT NULL DEFAULT '',
    `email` varchar(128) NOT NULL DEFAULT '',
    `username` varchar(40) NOT NULL DEFAULT '',
    `password` varchar(100) NOT NULL DEFAULT '',
    `created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
    `modified` datetime DEFAULT NULL,
    `logdate` datetime DEFAULT NULL,
    `lognum` smallint(5) unsigned NOT NULL DEFAULT '0',
    `reload_acl_flag` tinyint(1) NOT NULL DEFAULT '0',
    `is_active` tinyint(1) NOT NULL DEFAULT '1',
    `extra` text,
    `failures_num` smallint(6) NOT NULL DEFAULT '0',
    `first_failure` datetime DEFAULT NULL,
    `lock_expires` datetime DEFAULT NULL,
    PRIMARY KEY (`user_id`),
    UNIQUE KEY `UNQ_ADMIN_USER_USERNAME` (`username`)
  ) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COMMENT='Users' AUTO_INCREMENT=25 ;
  </code></pre>
  
  <h1>Table I am trying to create</h1>
  
  <pre><code>CREATE TABLE `oro_dashboard` 
  ( `id` int unsigned NOT NULL, 
  `name` varchar(255) NOT NULL default '', 
  `description` varchar(64) NOT NULL default '', 
  `created_by` int unsigned NOT NULL default '0', 
  `created_at` date, 
  `layout` varchar(255) NOT NULL default '', 
  `default_store_id` int, 
  PRIMARY KEY (`id`), 
  KEY `IDX_ORO_DASHBOARD_CREATED_BY` (`created_by`), 
  CONSTRAINT `FK_ORO_DASHBOARD_CREATED_BY_ADMIN_USER_USER_ID` FOREIGN KEY (`created_by`) REFERENCES `admin_user` (`user_id`) ON DELETE CASCADE ON UPDATE CASCADE, 
  CONSTRAINT `FK_ORO_DASHBOARD_DEFAULT_STORE_ID_CORE_STORE_STORE_ID` FOREIGN KEY (`default_store_id`) REFERENCES `core_store` (`store_id`) ON DELETE SET NULL ON UPDATE CASCADE ) 
  ENGINE=INNODB charset=utf8 COLLATE=utf8_unicode_ci
  </code></pre>
  
  <p>In magento, I found there is in deed a table called admin_user that does have a column called user_id. There is a core_store table that does have a column called store_id. and both my columns have INDEXES made. </p>
  
  <p>Does anyone have any clue what the issue maybe ? Below is my error message </p>
  
  <pre><code>#1005 - Can't create table 'db.oro_dashboard' (errno: 150)
  </code></pre>