· 6 years ago · Jun 19, 2019, 11:16 PM
1// codeception is a test runner so I think it injects "temporary" into create statements
2
3WordPress database error Cannot add foreign key constraint for query CREATE TEMPORARY TABLE IF NOT EXISTS wp_frequentVisitorCoupons_targets (
4 targetId mediumint not null auto_increment unique,
5 primary key (targetId),
6 isSitewide tinyint(1) not null,
7 targetUrl varchar(500),
8 displayThreshold tinyint(5) not null default 20,
9 offerCutoff tinyint(5),
10 fk_coupons_targets mediumint not null unique,
11 foreign key (fk_coupons_targets) references wp_frequentVisitorCoupons_coupons(couponId) on delete cascade
12 ) made by CodeceptionApplication->run, <continues on ...>
13
14
15
16// the create table function
17public static function createTablesIfNotExists() {
18 global $wpdb;
19
20$createCouponTableQuery = "CREATE TABLE IF NOT EXISTS {$wpdb->prefix}fvc_coupons (
21couponId mediumint not null auto_increment unique,
22primary key (couponId),
23totalHits mediumint not null,
24isText boolean not null,
25fileName varchar(200),
26folderDateString varchar(7)
27)";
28
29$createTargetTableQuery = "CREATE TABLE IF NOT EXISTS {$wpdb->prefix}fvc_targets (
30 targetId mediumint not null auto_increment unique,
31 primary key (targetId),
32 isSitewide tinyint(1) not null,
33 targetUrl varchar(500),
34 displayThreshold tinyint(5) not null default 20,
35 offerCutoff tinyint(5),
36 fk_coupons_targets mediumint not null unique,
37 foreign key (fk_coupons_targets) references {$wpdb->prefix}fvc_coupons(couponId) on delete cascade
38)";
39
40require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
41dbDelta($createCouponTableQuery);
42dbDelta($createTargetTableQuery);