ECCUBE 2.17系 シーケンステーブル

テーブルのデータを直接さわる中で、
シーケンステーブル(主キーの管理を担っている)は、ホント邪魔なわけで。

で、以前、
シーケンステーブルをまとめる方法
的な記事を書いたが、
正常に動くはずだけど、どこかに、爆弾をかかえてそうで、
本環境では、使えなかったのだけど、

上記の通り、

シーケンステーブルが、邪魔

なわけで、

 

今回、新たな方法を見つけた。

***

接頭語をつけて、テーブルをまとめる。

まず、phpMyAdminで、テーブルに接頭語をつけます。

phpmyadmin 接頭語をテーブルに付ける

標準装備。ありがたい!

で、

ECCUBE シーケンステーブルに接頭語を付ける

こんな感じに、まとまる。
xとか、zとか、つけると、後方にまとまって良い感じ。
※_(アンダーバー)も可。

 

次に、コードの修正。

/data/class/SC_Query.php

    /**
     * 次のシーケンス値を取得する.
     *
     * @param string $seq_name 取得するシーケンス名
     * @param integer 次のシーケンス値
     */
    public function nextVal($seq_name)
    {
        return $this->conn->nextID('接頭語'. $seq_name);
    }

    /**
     * 現在のシーケンス値を取得する.
     *
     * @param  string  $seq_name 取得するシーケンス名
     * @return integer 現在のシーケンス値
     */
    public function currVal($seq_name)
    {
        return $this->conn->currID('接頭語'. $seq_name);
    }

※’接頭語’.の部分を、シーケンステーブルの先頭に付けた文字に置き換えてね。

で、上記は、
class_extendsdのSC_Query_ex.phpに、コピーすれば、動くはず。

 

この方法だと、大きな変革の必要はなく、
コードの修正も、最小限で済むし、

phpMyAdminで、テーブルを探すのも、すっごく楽になる!!

 

このシーケンステーブル、そろそろ標準で、
なんとかしてくれないだろうかね?

 

やっぱ、有志に参加するしかないかね~~?

 

まあ、現状で解決しているので、ね?!

-

Dockerが起動しない~OCI runtime create failed: container with id exists:

起動中に、強制終了させたことが原因で、
Dockerのコンテナが起動しなくなりました。

 

調べてみると、正しく終了しなかったことにより、
残骸が残っているようで、それらを消すと、
正常起動するようですが、
OSによって、その保存場所が違うようです。

CentOSの場合は、

/run/docker/runtime-runc/moby

みたいですが、

参照 >> https://blog.codebase.co.jp/docker-oci-runtime-create-failed

今回のOSは、AmazonLinux。
Redhat系みたいなんで、CentOS系とも言えるけど、
そんなディレクトリがない・・・

 

で、やっと見つけた!、これ!

rm -R /var/run/docker/runtime-runc/moby

OCI runtime create failed: container with id exists:

ふう、無事起動だぜ~~!

***

また、強制終了してしまうこともあるので、
ここに、記録を。

-