title: Laravel migration failing to run, but query does work
body: <p>I have a migration that is failing to run.</p>
  
  <pre><code>public function up()
  {
      Schema::create('users_watch_history', function (Blueprint $table) {
          $table-&gt;string('id', 36)-&gt;primary();
          $table-&gt;string('user_id', 36);
          $table-&gt;string('video_id', 36);
          $table-&gt;string('course_id', 36);
          $table-&gt;timestamp('last_timestamp');
          $table-&gt;float('vid_watch', 5, 2);
          $table-&gt;float('total_watch', 5, 2);
          $table-&gt;text('watched_parts');
          $table-&gt;integer('last_position');
          $table-&gt;softDeletes();
  
          $table-&gt;foreign('user_id')
              -&gt;references('id')-&gt;on('users')
              -&gt;onDelete('cascade')-&gt;onUpdate('cascade');
  
          $table-&gt;foreign('video_id')
              -&gt;references('id')-&gt;on('videos')
              -&gt;onDelete('cascade')-&gt;onUpdate('cascade');
  
          $table-&gt;foreign('course_id')
              -&gt;references('id')-&gt;on('courses')
              -&gt;onDelete('cascade')-&gt;onUpdate('cascade');
      });
  }
  </code></pre>
  
  <p>when the migration is actually run I keep getting error messages about invalid default values for the <code>last_timestamp</code> column.</p>
  
  <pre><code>$ php artisan migrate
  
  
    [Illuminate\Database\QueryException]
    SQLSTATE[42000]: Syntax error or access violation: 1067 Invalid
    default value for 'last_timestamp' (SQL: create table 
    `users_watch_history` (`id` varchar(36) not null, `user_id` 
    varchar(36) not null, `video_id` varchar(36) not null, `course_id` 
    varchar(36) not null, `last_timestamp` timestamp not null, 
    `vid_watch` double(5, 2) not null, `total_watch` double(5, 2) not 
    null, `watched_parts` text not null, `last_position` int not null, 
    `deleted_at` timestamp null) default character set utf8 collate utf8_unicode_ci)
  
  
  
    [PDOException]
    SQLSTATE[42000]: Syntax error or access violation: 1067 Invalid default value for 'last_timestamp'
  </code></pre>
  
  <p>my MySQL version</p>
  
  <pre><code>&gt; select @@version
  +------------+
  | @@version  |
  +------------+
  | 5.6.34-log |
  +------------+
  1 row in set (0.20 sec)
  </code></pre>
  
  <p>But the twist that's throwing me for a curve is - if I run the create command in the CLI for the DB, everything works fine?</p>
  
  <pre><code>&gt; create table `users_watch_history` (`id` varchar(36) not null, `user_id` varchar(36) not null, `video_id` varchar(36) not null, `course_id` varchar(36) not null, `last_timestamp` timestamp not null, `vid_watch` double(5, 2) not null, `total_watch` double(5, 2) not null, `watched_parts` text not null, `last_position` int not null, `deleted_at` timestamp null) default character set utf8 collate utf8_unicode_ci;
  Query OK, 0 rows affected (0.19 sec)
  </code></pre>
  
  <p>table schema:</p>
  
  <pre><code>&gt; show create table users_watch_history \G
  *************************** 1. row ***************************
         Table: users_watch_history
  Create Table: CREATE TABLE `users_watch_history` (
    `id` varchar(36) COLLATE utf8_unicode_ci NOT NULL,
    `user_id` varchar(36) COLLATE utf8_unicode_ci NOT NULL,
    `video_id` varchar(36) COLLATE utf8_unicode_ci NOT NULL,
    `course_id` varchar(36) COLLATE utf8_unicode_ci NOT NULL,
    `last_timestamp` timestamp NOT NULL,
    `vid_watch` double(5,2) NOT NULL,
    `total_watch` double(5,2) NOT NULL,
    `watched_parts` text COLLATE utf8_unicode_ci NOT NULL,
    `last_position` int(11) NOT NULL,
    `deleted_at` timestamp NULL DEFAULT NULL
  ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
  1 row in set (0.17 sec)
  </code></pre>
  
  <p>Any idea what could be causing this valid query to not run through the migration?</p>