you are trying to add a non-nullable field が出た時。

you are trying to add a non-nullable field はdjangoですでに作成しているDBのテーブルのスキーマを変更しようとすると出るはずです。

class User(models.Model):

         user_firstname = models.CharField(max_length=40)

上記のテーブルを作成します。

その後、これを変更して

class User(models.Model):

         user_firstname = models.CharField(max_length=40)

         user_lastname = models.CharField(max_length=20)

このようにします。これをmakemigrationsするとタイトルのエラー?が出ます。

エラーというより聞かれているだけなのですが、要はuser_firstnameしか無かった時に登録されたレコードにuser_lastnameが追加されるけどその値はどうする?と聞かれています。(ちなみにレコードを1つも登録していなくてもこれは聞かれます。)

解決するにはデフォルトを設定してあげるか、nullを許可すれば解決します。      user_lastname = models.CharField(max_length=20,null=True)

または、

user_lastname = models.CharField(max_length=20,default=ここは自分の好きなデフォルト値)

こんな感じで設定すると大丈夫です。

 

virtualboxとDocker for windowsを共存させてしまってvirtualboxのインスタンスが起動しなくなった場合。

はい、やらかしました。

もともとvirtualboxが入っているpcにdocker入れてしまってvirtualbox起動しなくなりました。

これの解決策書きます。

まず、仮想化支援機能をBIOS画面から無効にしてから再起動。そのあともう一度BIOSから有効にします。

次にwindowsのコントロールパネルからプログラムを選んでwindows機能の有効化無効化を選択する。一覧からHyper-Vチェックボックスを外して再起動。

virtualboxを再インストールしてインスタンス立ち上がるか検証。だめなら、そのインスタンスの設定が32bitに変更されてないか確認。されてたら64bitに戻す。

 

django.db.migrations.exceptions.InconsistentMigrationHistory: Migration admin.0001_initial is applied

djangoでこのエラーが出た時は自分でカスタムユーザーを再定義した場合に起こることが多いようです。

自分もよく分かっていないのですが、先にadminのデータベース設定が適用されてしまうことが原因なのかな?

とりあえず解決策だけ書いておきます。

プロジェクトのsetting.pyのINSTALLED_APPSの中のdjango.contrib.adminをコメントアウトしてからmakemigrationsしてmigrateしてください。migrateしたら先ほどのコメントアウトを外して元に戻してください。

INSTALLED_APPS = [
...
#‘django.contrib.admin’,
...
]

docker-composeをインストールする際のエラー unexpected token 'newline' 予期しないトークン

環境 ubuntu14.04

 

curl -L https://github.com/docker/compose/releases/download/1.11.2/docker-compose-`uname -s-uname -m` -o /usr/local/bin/docker-compose

↑のコマンドを実行したと思いますが、下のようにして実行し直すと治ります。

curl -L https://github.com/docker/compose/releases/download/1.11.2/docker-compose-Linux-x86_64 -o /usr/local/bin/docker-compose

 

上のコマンドではhtmlをダウンロードしてきてしまいます。

下のコマンドでバイナリを持ってきましょう。

raspberry pi3 でのPiserverを用いたネットワークブートが出来ない時。

raspberry pi3 ではPiserverを用いて手軽にラズパイをマイクロSD無しで起動出来るようになりましたが、少し困ることがあるので書いておきます。

 

クライアントであるラズパイをPiserverに登録し、よし!後はラズパイの電源を入れるだけという状態からラズパイの電源を入れても画面が真っ暗で何も表示されないということがあります。

これは、ネットワークブートがある箇所で止まっています。

そのある箇所というのは、ラズパイのリクエストです。

ラズパイがPiserverに対してbootsig.binというファイルをリクエストしているのですがPiserverの/var/lib/piserver/tftproot/b8-27-eb(ここは人によって変わる)の中にbootsig.binというファイルがないために起こります。

つまり、/var/lib/piserver/tftproot/b8-27-eb〜〜〜の中にbootsig.binを入れてやれば解決すると思われるのですが、実はPiseverを用いたネットワークブートではbootcode.binさえあれば良くbootsig.binは本来ラズパイ側からリクエストされることはありません。

この問題が引き起こされるのは、おそらくラズパイ3が発売されてから、それほど時間が経ってない時期に購入した方ではないかと思っています。

私の最終的な結論はファームウェアかハードウェアのバグです。(しかし、ファームウェアを最新にしてみても問題は解決しなかった。)

最後に、解決策ですが最新のraspberry Pi3 B+を購入するのが良いと思います。

私は最新のラズパイを購入してからは問題なくネットワークブート出来ています。

PermissionError: [Errno 1] Operation not permittedが出た場合。

PermissionError: [Errno 1] Operation not permittedが出た時の対処法です。

当たり前のことすぎて日本語のサイトなかったので書いておきます。

実行する時に  sudo をつけてください。以上です・・・。

kali linux でのapt installやapt updateが遅いとき。

kali linuxの2017.3 はデフォルトではaptすると日本のミラーサーバーに問い合わせを行うようですが、先日、私がapt updateした際に異常に遅くて1800b/sくらいの速度しか出なかったので困りました。

その際には、日本のミラーサイトではなく他の国のミラーからダウンロードするようにしましょう。

まず、

cd /etc/apt

次に、

vim sources.list

f:id:m011501945:20180108180254p:plain

これを下の画像のように変更。(イタリアのサーバーです。)

f:id:m011501945:20180108180540p:plain

書き直したら、:wqでしっかり保存してください。

これで、海外のサーバーに問い合わせてくれるようになります。