[ カテゴリー » PC関連 ]

Entity Framework 6.1 & MySQLでマイグレーションが失敗する

EF6.1.3&MySql.Data.Entity 6.9.6&MySQL Server 5.6でマイグレーションを追加したところ、実行時に

MySql.Data.MySqlClient.MySqlException was unhandled
  HResult=-2147467259
  Message=Table 'myschema.dbo.mydatafield' doesn't exist
  Source=MySql.Data
  ErrorCode=-2147467259
  Number=1146

といったエラーが出る。どうやらマイグレーション用コードに'dbo.'が入っているとダメな処理があるようです。

public partial class ChangeMyClassStructure : DbMigration
{
    public override void Up()
    {
        DropForeignKey("dbo.MyTable", "MyTable2_Id", "dbo.MyTable");
手編集で'dbo.'を削除すると、動作しました。
DropForeignKey("MyTable", "MyTable2_Id", "MyTable");

CreateTableなど作成系は'dbo.'が入っていてもうまくやってくれるようですが、少なくとも以下の削除系・変更系はダメな時がある模様(問題無しの時もあって、よく分からんのです、これが)。MySql.Data.Entityの問題かな?

  • DropForeignKey
  • DropIndex
  • DropColumn
  • RenameTable

ここLink の話だと、EF5からdbo.が付くようになったようで。

[参照]

— posted by mu at 05:01 pm   commentComment [0]  pingTrackBack [0]

Excelファイル保存時にxlsm保存を要求される

blog20150427-Excel4FunctionStored

MySQL for Excelアドインをインストールしていると、xlsxファイルを保存時にExcel 4.0 function stored in defined names.とメッセージが出て、xlsm形式で保存を求められることがあるようです。私はアドインをアンインストールしました。

参照

— posted by mu at 06:31 pm   commentComment [0]  pingTrackBack [0]

SVNのTree conflictで悩む

書くネタ無いのでお馬鹿な失敗談を。

プログラムのコードをSVNで管理していて、ローカルではこんなファイル構成に。
~/project
  +- .svn
  +- File1
  +- File2
  +- ...
予想外に規模が大きくなってきたので「サーバ上で」trunk/branchsとフォルダを切り、File1, File2,...などをtrunkに移動。ローカルではFile1, File2, ...を削除、
~/project
  +- .svn
そのフォルダにtrunkサブフォルダを作り、(この時点で分かっている人からは「馬鹿たれ」と言われるはず)
~/project
  +- .svn
  +- trunk
改めてtrunkに対し、サーバからCheck out。
~/project
  +- .svn
  +- trunk
    +- .svn
    +- File1
    +- File2
    +- ...
サーバ上でtrunkからbranchs/branch1に複製。
[サーバ上]
project
  +- .svn
  +- trunk
    +- .svn
    +- File1
    +- File2
    +- ...
  +- branchs
    +- branch1
      +- .svn
      +- File1
      +- File2
      +- ...
ローカルではprojectフォルダの下にbranch1を作成、先ほどのbranchs/branch1をCheck out。
~/project
  +- .svn
  +- trunk
    +- .svn
    +- File1
    +- File2
    +- ...
  +- branch1
    +- .svn
    +- File1
    +- File2
    +- ...
blog20150304-SvnTreeConflict

branch1で変更を加えてcommitというのを繰り返して、いざbranch1をtrunkにマージしようとすると画像のようにTree conflict。逆にtrunkからbranch1にマージでもTree conflict。気を取り直してtrunkからbranch2を複製するも、branch2をちょっと変更してcommitしただけでマージ時にTree conflict。

何がいけないのかというと、~/project直下の.svnを削除してなかったこと。焦っていると気づかないもので。

— posted by mu at 08:09 pm   commentComment [0]  pingTrackBack [0]

atrunがキューを実行しない

FreeBSDLink をベースとしたFreeNASLink を運用していますが、故(FoltiaLink とかFoltiaとかFoltiaなど)あってat系のコマンドを多用しています。(2015/1/21 追記:正確にはFreeNASで作成したjail内でのFreeBSDがatを多用)

が、どうもキューの登録に失敗するとか、登録したキューが実行されないとかいった問題が不定期で発生。syslogを見るとこんなものが。

Jan 16 01:40:01 foltia atrun[34960]: cannot open input file 'c2729a01697728': No such file or directory
Jan 17 02:05:00 foltia atrun[34946]: cannot create output file: File exists
Jan 17 02:35:00 foltia atrun[41622]: cannot create output file: File exists
Jan 17 02:40:01 foltia atrun[41800]: cannot stat in /var/at/jobs/: No such file or directory
Jan 17 10:00:00 foltia atrun[38582]: cannot stat in /var/at/jobs/: No such file or directory
Jan 17 22:30:00 foltia atrun[59238]: cannot stat in /var/at/jobs/: No such file or directory
Jan 18 00:00:00 foltia atrun[72840]: cannot stat in /var/at/jobs/: No such file or directory
Jan 18 00:30:01 foltia atrun[76644]: cannot stat in /var/at/jobs/: No such file or directory
Jan 18 10:00:00 foltia atrun[24497]: cannot stat in /var/at/jobs/: No such file or directory
Jan 18 10:30:00 foltia atrun[26414]: cannot stat in /var/at/jobs/: No such file or directory
Jan 19 01:00:01 foltia atrun[78312]: cannot open input file: No such file or directory
Jan 19 16:55:03 foltia atrun[38395]: cannot open input file 'c28cf201698b9b': No such file or directory
Jan 19 18:30:01 foltia atrun[44437]: cannot stat in /var/at/jobs/: No such file or directory

この手のメッセージで検索すると古くはFreeBSD 6の頃から同じような症状を訴える人が少なくないのですが、どれも解決には至っていない模様。これがOSのバグだとしても、こんな基本機能の不具合が長期間放置されるとも考えづらいし…

ただ調べていくとどうもこの症状を訴える人はrootのcrontabに以下の設定をしている模様。

* * * * * /usr/libexec/atrun

/usr/libexec/atrunというのは時間が来たキューをまとめて実行するコマンド。OSの初期設定は5分毎にこれを実行しますが、上の設定だと毎分実行して時間が来たキューはなるべく早く処理するということになります。

私もこの設定にしてたので、ダメ元で3分毎に実行と頻度を落として様子を見ることに。さて、どうなるやら。

[2015/1/21 追記] 3分毎の実行は7:30にエラーを出しあえなく失敗(-_-;) ログの時刻を見るとエラーは5の倍数の分の時のみに発生している。5の倍数の分を外すようにcrontabを設定、様子見を開始。

— posted by mu at 12:48 am   commentComment [0]  pingTrackBack [0]

自分で立てたSVNサーバがAuthorization failed

新しいシステムを作ることになったので、バージョン管理システムLink のサーバを立てようかと。個人だと最近はgitを使うことが多いのですが、会社ではSubversionが優勢。レポジトリをクラウドストレージと同期させればバックアップも取れるかなということで、WindowsサービスとしてSVNサーバを立てることに。

方法は検索すればごろごろ出てきますが、今回はここLink を参考に。svnのコマンド類はTortoiseSVNのbinディレクトリの物を使用。

サービスも無事立ち上がりTortoiseSVNから接続もできるのですが、なぜか書き込みをしようとするとAuthorization failedを連発。ログを見てもE170001: Authorization failedとしか書かれていない。

原因は非常に馬鹿らしいミス。svnserve.confには以下の3行を追加する必要があります。
anon-access = none
auth-access = write
password-db = passwd

一方svnadmin createで作成されるデフォルトのsvnserve.confは以下のようになってます。

# こめんと~

[general]
#
# たくさんのこめんと~
#
[sasl]
# またまたこめんと~
#

重要なのは[general]、[sasl]の順でブロックが記述されていること。何も考えず先ほどの3行をファイルの最後に書き足したので、これらは[sasl]ブロックに属すると解釈されます。ところがこれらは[general]ブロックに書かないといけない。つまり私の設定は無効。

3行を[general]ブロックに移すことでSVNサーバは期待通りの動作をするようになりました。2日潰してしまった…

[参考]

— posted by mu at 08:42 pm   commentComment [0]  pingTrackBack [0]

T: Y: ALL: Online:
ThemeSwitch
  • Basic
Created in 0.0248 sec.
prev
2024.4
next
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30