Description
I've been playing around Schema Builder and for some reason it will not longer create the 2nd table and it will not create composite key on the second table. I can run plain SQL (test SQL below) and get it done so unsure.
- Running latest version of Laravel.
- PHP 5.5
- mySQL 5.5.34-cll-lve
- Apache 2.2.25
if(DB::connection()->getDatabaseName())
{
echo "connected sucessfully to database ".DB::connection()->getDatabaseName();
}
Schema::create('users', function($usertable)
{
$usertable->bigIncrements('userid');
$usertable->char('username',100);
$usertable->char('passwordhash',64);
$usertable->char('name',100)->nullable();
$usertable->char('firstname',100)->nullable();
$usertable->char('lastname',100)->nullable();
$usertable->smallInteger('namevisible');
$usertable->char('email',100);
$usertable->smallInteger('emailvisible');
$usertable->smallInteger('userenabled');
$usertable->dateTime('creationdate');
$usertable->dateTime('modificatonDate');
$usertable->dateTime('lastloggedin');
$usertable->dateTime('lastprofileupdate');
$usertable->smallInteger('visible');
$usertable->smallInteger('status');
$usertable->primary('userid')->unique();
});
Schema::create('usergroups', function($usrgrptable)
{
$usrgrptable->bigIncrements('groupid');
$usrgrptable->bigInteger('userid', 20);
$usrgrptable->bigInteger('administrator', 20);
$usrgrptable->primary(array('groupid','userid','adminstrator'));
});
TEST SQL THAT WORKS FINE
SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL,ALLOW_INVALID_DATES';
USE matrixme_matrixme
;
-- Table matrixme_matrixme
.users
CREATE TABLE IF NOT EXISTS matrixme_matrixme
.users
(
userid
INT UNSIGNED NOT NULL AUTO_INCREMENT,
username
VARCHAR(100) NULL,
firstname
VARCHAR(100) NULL,
lastname
VARCHAR(100) NULL,
PRIMARY KEY (userid
))
ENGINE = InnoDB;
-- Table matrixme_matrixme
.user groups
CREATE TABLE IF NOT EXISTS matrixme_matrixme
.user groups
(
groupid
INT UNSIGNED NOT NULL AUTO_INCREMENT,
userid
INT UNSIGNED NOT NULL,
admininstrator
INT UNSIGNED NOT NULL,
PRIMARY KEY (groupid
, userid
, admininstrator
),
INDEX fk_user_id_idx
(userid
ASC),
CONSTRAINT fk_user_id
FOREIGN KEY (userid
)
REFERENCES matrixme_matrixme
.users
(userid
)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
SET SQL_MODE=@OLD_SQL_MODE;
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;
ERROR IN LOG FILE (weird as it was working beforehand and just stopped working)
[2014-05-26 20:13:53] production.ERROR: exception 'Illuminate\Database\QueryException' with message 'SQLSTATE[42000]: Syntax error or access violation: 1068 Multiple primary key defined (SQL: alter table users
add primary key users_userid_primary(userid
))' in /home/matrixme/public_html/vendor/laravel/framework/src/Illuminate/Database/Connection.php:555
Stack trace:
#0 /home/matrixme/public_html/vendor/laravel/framework/src/Illuminate/Database/Connection.php(338): Illuminate\Database\Connection->run('alter table us...', Array, Object(Closure)) #1 /home/matrixme/public_html/vendor/laravel/framework/src/Illuminate/Database/Schema/Blueprint.php(63): Illuminate\Database\Connection->statement('alter table
us...')
#2 /home/matrixme/public_html/vendor/laravel/framework/src/Illuminate/Database/Schema/Builder.php(169): Illuminate\Database\Schema\Blueprint->build(Object(Illuminate\Database\MySqlConnection), Object(Illuminate\Database\Schema\Grammars\MySqlGrammar))
#3 /home/matrixme/public_html/vendor/laravel/framework/src/Illuminate/Database/Schema/Builder.php(112): Illuminate\Database\Schema\Builder->build(Object(Illuminate\Database\Schema\Blueprint))
#4 /home/matrixme/public_html/bootstrap/compiled.php(3165): Illuminate\Database\Schema\Builder->create('users', Object(Closure))
#5 /home/matrixme/public_html/app/routes.php(42): Illuminate\Support\Facades\Facade::__callStatic('create', Array)
#6 /home/matrixme/public_html/app/routes.php(42): Illuminate\Support\Facades\Schema::create('users', Object(Closure))
#7 [internal function]: {closure}()
#8 /home/matrixme/public_html/bootstrap/compiled.php(4954): call_user_func_array(Object(Closure), Array)
#9 /home/matrixme/public_html/bootstrap/compiled.php(4669): Illuminate\Routing\Route->run(Object(Illuminate\Http\Request))
#10 /home/matrixme/public_html/bootstrap/compiled.php(4657): Illuminate\Routing\Router->dispatchToRoute(Object(Illuminate\Http\Request))
#11 /home/matrixme/public_html/bootstrap/compiled.php(706): Illuminate\Routing\Router->dispatch(Object(Illuminate\Http\Request))
#12 /home/matrixme/public_html/bootstrap/compiled.php(687): Illuminate\Foundation\Application->dispatch(Object(Illuminate\Http\Request))
#13 /home/matrixme/public_html/bootstrap/compiled.php(1144): Illuminate\Foundation\Application->handle(Object(Illuminate\Http\Request), 1, true)
#14 /home/matrixme/public_html/bootstrap/compiled.php(7264): Illuminate\Http\FrameGuard->handle(Object(Illuminate\Http\Request), 1, true)
#15 /home/matrixme/public_html/bootstrap/compiled.php(7861): Illuminate\Session\Middleware->handle(Object(Illuminate\Http\Request), 1, true)
#16 /home/matrixme/public_html/bootstrap/compiled.php(7808): Illuminate\Cookie\Queue->handle(Object(Illuminate\Http\Request), 1, true)
#17 /home/matrixme/public_html/bootstrap/compiled.php(10820): Illuminate\Cookie\Guard->handle(Object(Illuminate\Http\Request), 1, true)
#18 /home/matrixme/public_html/bootstrap/compiled.php(648): Stack\StackedHttpKernel->handle(Object(Illuminate\Http\Request))
#19 /home/matrixme/public_html/public/index.php(49): Illuminate\Foundation\Application->run()
#20 {main} [] []