Lenovo yoga tablet 2 windows 8.1 with bing > windows 10 アップグレード

7月末の無料アップグレード期限までに、
Lenovo yoga tablet 2にも、Windows10を入れてみようと、試みたが、
思いの外、苦戦したので、その記録である。

***

単に、Windows10のアップグレードを実行
(以下より、実行ファイルげっとん可)

>?https://www.microsoft.com/ja-jp/windows/windows-10-upgrade

で、実行すると・・・

Windows10 アップグレード 容量不足

容量不足とな!!

ディスクのクリーンアップや、余計なファイルも削除、
加えて、ドライブの圧縮もやったけど、

Windows 空き容量

これが、限界・・・

***

32Gbの内の23.4Gbが表示されており、残りは回復用に使われているので、

Windows8.1 回復パーティション

これを、消すしかないが、
ディスクの管理からは、削除できないため、

>Windows 8.1 回復パーティションを削除してCドライブの空き領域を増やす?

を元に、削除を試みたが、

Windows 8.1 回復パーティション 削除

何度やっても、エラーとなる。

***

削除できない理由が書いてあったのが、こちら↓

>?Windowsの「回復パーティション削除したい」問題に結論?

回復パーティションには圧縮されたWindowsのファイルが配置され、Cドライブに展開されたWindowsのファイルが壊れたりした場合は、回復パーティションの圧縮されたWindowsファイルを解凍してCドライブに再展開することでリカバリしていました。
つまり回復パーティションとCドライブに同じものが重複していました。

「WIMブート」はこの重複を省く仕組みです。

というわけで、
この回復パーティションにあるファイル群は、
実際に起動に必要なファイルなので、当然、消せるわけがない、という結末。

***

さて、困った・・・

こうなると、残す手は、クリーンインストールしかないわけです!!

が、

Windows8.1 Yoga Tablet 2 (3) Windows10 編

によると、
ISOをDLし、云々かんぬんと。

>http://www.microsoft.com/ja-jp/software-download/windows10

とりあえず、メディアツールなるものを、DLし、実行!

Windows10 アップグレード

とりま、「このPCを今すぐアップグレードする」で、実行。(16Gb弱空きあるし)

「ダメなら、メディアを作って」
と、思って進めてみたら、

Windows10 インストールする準備が出来ました

なんだか、

インストール出来るみたい!!

 

で、

あとは、再起動を何回か繰り返し、途中でエラーが出ることもなく

すんなりアップグレード完了!!

Lenovo Yoga 8 Windows 10アップグレード 完了

-

顧客/商品(dtb_customer/dtb_products)情報を共有@ECCUBE

おそらく、3.0系なら、接頭語を使えそうなので、
気にしなくても良さそうですが、
※さくらサーバー : クイックインストールより

3.0系は、まださわりたくないので、
2.13系でやるなら、いろいろと、大変そう・・・

***

とりあえず、ソースを見た限り、接頭語的なものはないので、
顧客/商品情報を共有する場合に、

思いついた手法は、3つ。

  1. それぞれのECCUBEのテーブルに接頭語を入れ、(例 dtb1_customer)
    class_exの該当ソースを、全て、置き換える。
  2. それぞれECCUBEを、別のDBにして、
    dtb_customer / dtb_products だった場合、
    接続先DBを、切り替える。
  3. タイマーで、それぞれのデータをコピーするか、
    DBトリガーは使えないので、
    追加・変更された時は、別のデータベースへ、更新を伝える。

参考 >?http://xoops.ec-cube.net/


※以下は、作る前の模索・まとめです

1. 接頭語を入れる

classを直接書き換えるなら、
* dtb_ > dtb1_
* mtb_ > mtb1_
に、それぞれ置換だけで済み、
dtb_customer / dtb_products だけは、接頭語ナシで共有する

※ただ、アップデートがある度、書き換えないといけないので、
class_exで、該当ソースをそれぞれコピーして使うのが、吉かな?
でも、すこぶる面倒・・・
だけど、もうアップデートはなさそうだし。
あと、プラグインも変更が必要な可能性大!

***

2. 接続先を変える

get、 update 、insertを使う場合、内部的には、SQLを作って、
SC_Query.php > query に渡しているので、
SQL内に、dtb_customer / dtb_productsが入っている場合は、接続先を書き換え。

具体的には、SC_Queryを派生させたサブクラス を作成し、
(SC_Query_Exではなく)=これは、通常DBに接続するために、おいておく
__constructで、接続先をメインDBへに書き換えたものを作り、

query内に、分岐を作り、上記サブクラスで、別のデータベースからデータを取ってくる。

※inner join とかで、繋いでいる場合、別のデータベースの注文情報などを書き換えてしまう可能性大!

***

3. トリガー的に書き換える

2は、現実的じゃなく、1は、ソース管理が面倒なので、
どれか、更新されたら、トリガー的にデータをコピーするのが、良さそうです。

※ただし、商品情報は、画像データのコピーとかが必要なので、その書き換えも必要です!

※今回は、顧客情報だけの共有なので、商品情報までは、加味してません。

***

会員登録・変更時に使用されるコードは、

SC_Helper_Customer.php :?sfEditCustomerData

変更の時は、
LC_Page_Mypage_Change.php :?lfRegistCustomerDataを、経由し、
上記、SC_Helper_Customer.php :?sfEditCustomerDataで、処理。

ログインなどのセッション情報は、SC_Customer内の関数でupdateされている。

.

これらを踏まえ、書き換えるのは、

  • SC_Helper_Customer.php :?sfEditCustomerData
  • SC_Query : update

の2箇所。


接続先を変えるため、SC_Query :?__construct から、派生し、クラス作成。
重要: SC_Query_EX.phpではない!

define.phpあたりに、別のデータベースの接続情報を作成し、
それを、参照する形で、それぞれの接続を作り、

追加・更新されたデータを、書き換える。

 

なんか、コレを、書いている途中、
「3サイトじゃなくて、1サイトでいい」と言われ、ココで断念・・・

ご参考に。


 

* 排他処理 *

データ追加する場合、IDがバッティングしてしまう可能性があるので、排他処理が必要ですが、
ファイルの書き込みには、FTP情報が必要なので、
今回は、排他処理用のテーブルを作って、そこにデータがある場合は、
遅延(sleepループ)させます。
※商品情報の場合は、管理者が同時に書き換えることはないので、不要。

同様に、
同一ユーザーが、ユーザー情報を、
複数サイトから同時に、変更する可能性も低いので、
遅延処理は、insertの時だけで、良いはずです。

 

-