1

私は Wakanda プロジェクトを構築する初心者ですが、複数の dataClass を使用して dataModel を構築することに成功しました。これらの dataClass に、SQL、JSON、または CSV ダンプ ファイルを使用してダミーで生成されたデータを入力したいと考えています。

私が想定するのは正しいですか、JSON 形式のデータ ファイルを使用してから、このダミー データを dataModel にアップロードするのが最善でしょう。Wakanda Studio 内でこれを可能にする場所を見つけることができませんでした。1000以上のダミーデータのレコードを作成する最善の方法を誰かが教えてくれますか?

前もって感謝します。

4

4 に答える 4

4

私は通常、 CSVまたはJSONファイルをloadText解析するときに単純な関数を使用してデータベースにデータを入力するのが好きです。importFromJSON

  1. .js最初に、プロジェクトのサーバー側部分の任意の場所にファイルを作成する必要があります。フォルダーはサーバー側と見なされますbackenddatabase
  2. アクションをスクリプト化する必要があります。ここで例を見ることができます。CSVファイルを解析している場合はloadText('/path/to/file.csv').split("\n")、それ以外の場合はJSONimportFromJSONファイルに使用します。
  3. コード エディターのツールバーにある矢印ボタンを使用してスクリプトを実行します。

出力は、コード エディターの下部にあるコンソールに表示されます。

于 2016-06-30T07:16:24.500 に答える
1

これは、JSON オブジェクトからのインポートを行う私の方法です。

関係に従って正しい順序でデータをインポートすることに注意する必要があります。たとえば、会社がまだ存在しないため、最初に従業員をインポートして会社を割り当てることはできません。したがって、ここでの正しい順序は、会社をインポートしてから従業員をインポートし、関連する会社をリンクすることです。

/**
 * Example Data
 */

var hireDate = new Date('2012',7,13,1,0,0),
    companies = [{name:'Company 1'},{name:'Company 2'},{name:'Company 3'}],

    employees = [{firstName:'John',lastName:'Doe',company:'Company 1',hireDate:hireDate,salary:2000},
                    {firstName:'Frederic',lastName:'Smith',company:'Company 2',hireDate:hireDate,salary:2000},
                    {firstName:'John',lastName:'Doe',company:'Company 3',hireDate:hireDate,salary:3000},
                    {firstName:'Marc',lastName:'Petit',company:'Company 2',hireDate:hireDate,salary:5000},
                    {firstName:'Arthur',lastName:'Johns',company:'Company 3',hireDate:hireDate,salary:2500},
                    {firstName:'Mike',lastName:'Sina',company:'Company 3',hireDate:hireDate,salary:2900},
                    {firstName:'Jack',lastName:'Taylor',company:'Company 1',hireDate:hireDate,salary:7800},
                    {firstName:'Simon',lastName:'Portmann',company:'Company 2',hireDate:hireDate,salary:4700}],

    newCompany,newEmployee;

companies.forEach(function(company){
    newCompany = new ds.Company(company);
    newCompany.save();
});

employees.forEach(function(employee){
    newEmployee = new ds.Employee(employee);
    newEmployee.company = ds.Company.find('name == :1',employee.company)
    newEmployee.save();
});

ds.Employee.all()

属性名が dataClass のものと同じである場合は、作成時にオブジェクトを割り当てることができます。または、そのような特別なルールがある場合は、属性を操作できます。

employees.forEach(function(employee){
    newEmployee = new ds.Employee();
    // Example how to assign value to an attribute on the import
    // newEmployee is the new employee created in the dataStore of Wakanda.
    // employee is the employee which come from the JSON object.
    // Maybe the imported data have different attribute names.
    newEmployee.firstName = employee.name;
    newEmployee.lastName = employee.lname;
    newEmployee.birthDate = new Date(employee.datestamp);
    newEmployee.company = ds.Company.find('name == :1',employee.company)
    newEmployee.save();
});
于 2016-07-08T09:23:16.850 に答える
0

私がしているのは.js、プロジェクト レベルで作成したファイルです。そのファイル内には、以下の jsfiddle のコードがあります。ソリューションの実行中に、エディタ ウィンドウの上にある [再生] ボタンをクリックしてスクリプトを実行できることがわかります。

データストア クラスへのアクセスは、アクセスを制限したりデータを保護したりするためにデータストア クラスに設定したまたはその他のイベントvalidate()restrict()影響を受けることに注意してください。これらの制限が邪魔になっていないかsave()確認してpromoteWith()ください。unPromote()

私のスクリプトはBackups、プロジェクト レベルでフォルダーからカンマ区切りの CSV を読み込みます。私はあなたが見るためにここにjavascriptを入れました:

https://jsfiddle.net/kgwd1kek/

必要に応じてこれを拡張できます。これが役立つことを願っています。

また、ソリューションの最初/唯一のプロジェクト以外のプロジェクトを参照している場合は、2 行目の配列インデックスを変更する必要があります。

また、代わりに、 1 から 1000 まで実行してレコードを作成して保存するforループをそのファイルに入れることもできます。.js私はこれを行いMath.random() 、MDN からピックアップした関数を使用して、ランダムなデータでレコードを作成します。文字列データまたはブール値の場合でも、乱数とswitch()ステートメントを使用して、事前に定義された多数の文字列値の 1 つをエンティティに追加してから保存します。これは私にとって素晴らしいテスト ソリューションです。

于 2016-07-07T20:47:47.260 に答える