0

古いユーザーDBから新しいユーザーDBに移行する必要があります....幸い、パスワードとソルトフィールドの値は両方で同じですが、列名が異なります(古いテーブル:user passhash-> secret 、新しいテーブル:newuser password-> salt)

既存のユーザーデータから挿入ダンプを生成するにはどうすればよいですか?私が何かをするときはいつでも

SELECT id,
  username,
LOWER(username) AS username_canonical,
  email,
  LOWER(email) AS email_canonical,
  passhash AS 'password',
  secret AS salt,
  1 AS enabled,
   'a:0:{}' AS roles,
   0 AS credentials_expired,
   0 AS expired,
   0 AS locked,
   uploaded,
   downloaded,
   torrent_pass,
   0 AS torrent_pass_version
FROM
  temp2.users AS fos_user
WHERE enabled = 'yes' ;

phpMyAdminに正しくリストされている値を確認できますが、結果をエクスポートすると、古い構造に挿入が表示されます。

INSERT INTO `fos_user` (`id`, `username`, `username`, `email`, 
    `email`, `passhash`, `secret`, `enabled`, `a:0:{}`, 
    `credentials_expired`, `expired`, `locked`, `uploaded`, 
    `downloaded`, `torrent_pass`, `torrent_pass_version`) 
VALUES....
4

2 に答える 2

1

次のようなもので、INSERTとSELECTを同時に実行してみませんか。

INSERT INTO `fos_users` (username, password, salt ...)
SELECT LOWER(username), passhash, secret, ...
FROM users;

もちろん、これは、少なくとも一時的に、古いデータセットを新しいデータベースに含めることができることを前提としています...

于 2012-07-11T16:44:28.320 に答える
1

phpAdmin GUIを使用してテーブルをエクスポートすると、テーブルの元のスキーマが使用されます。目的のスキーマでエクスポートするには、SELECT INTOファイルの構文を使用します:http://dev.mysql.com/doc/refman/5.1/en/select-into.html

于 2012-07-11T16:50:20.877 に答える