title: Default value for username in SQL database
body: <p>I'm writing a Laravel application, and for testing in sqlite you need to specify ->nullable() or ->default("123") for all fields in your migration. This confuses me as my User-migration currently looks like this:</p>
  
  <pre><code>public function up() {
      Schema::create('users', function($table) {
          $table-&gt;increments('id');
          $table-&gt;integer('role_id');
          $table-&gt;string('username')-&gt;unique();
          $table-&gt;string('password');
          $table-&gt;string('name');
          $table-&gt;string('email');
          $table-&gt;integer('max_locations');
          $table-&gt;string('auth_token');
          $table-&gt;string('remember_token', 100);
          $table-&gt;timestamps();
      });
  }
  </code></pre>
  
  <p>Many of these make no sense to add neither ->default("123") nor ->nullable() to. Username is a good example, I can't have null as a username in the database, but if I set a default value that wont work either. The second user that does not have a username that gets added will take the default username, and since usernames have to be unique it will throw an exception.</p>
  
  <p>Currently I have nothing specified, and SQL solves this by giving all these fields the default value "None". Can that be added in some way here? If not, should my username have a default value or should it be nullable?</p>