标签: seeding

将种子数据添加到开发数据库以进行测试

我有几个表,我想以一种尊重和说明他们的关系的方式添加大约10行数据.

  • 如何将种子数据(虚拟数据)添加到应用程序的开发数据库进行测试?
    我希望有人能指出我这样做的铁路友好方法.

  • 有没有一种简单的方法在每个表透视控制器中制作CRUD方法?

ruby-on-rails seeding ruby-on-rails-3 ruby-on-rails-3.1

2
推荐指数
1
解决办法
3118
查看次数

转储Heroku数据库以便在本地seed.rb中使用的最简单方法?

我可以转储一个heroku数据库$ heroku pgbackups:capture.此外,此SO帖子显示有一些工具可用于获取开发数据库并将其转储到seed.rb.

我想知道是否有一种简单的方法来组合这两个过程,有效地将数据从生产Heroku数据库转储到我的本地seeds.rb中,以进行更真实的开发测试.

如果可以的话,最干净的方法是什么?

更新:

根据dB'的深刻回答,我可能会考虑在本地使用PGSQL.但是,我仍然对问题的seed.rb方面感兴趣,如果有办法轻松地做到这一点.

ruby-on-rails heroku database-dump seeding ruby-on-rails-3

2
推荐指数
1
解决办法
4088
查看次数

您可以使用Groovy代码在Grails迁移中创建和修改数据吗?

目标 - 在单个部署/重启中,我想创建一个新表并填充一些记录,因为会有代码更改,期望这些数据存在.

理想 - 编写实现此目的的迁移.想象一下,我已经创建了我的Foo类,生成了一个用于创建foograils dbm-gorm-diff ....的迁移,并使用它来运行迁移grails dbm-update.我现在有我的域类和我的数据库表.凉.

现在我将编写一个填充表的新迁移.

databaseChangeLog = {
    changeSet(author: "samslotsky", id: "PopulateFooTable") {
        grailsChange {
            change {
                new Foo(bar: 'baz').save()
                new Foo(bar: 'blitz').save()
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我将把它添加到changelog.groovy

include file: 'populate-foo-table.groovy'
Run Code Online (Sandbox Code Playgroud)

grails dbm-update再次运行后,我的foo表中没有记录.这不是验证问题,因为我可以Foo从应用程序代码中创建对象.我甚至不确定如何判断我的迁移是否已执行,因为断点似乎没有在迁移中捕获.

所以我想有两个好问题要问:

  1. 除了寻找副作用(即我的db表被填充),我怎么能确定我的迁移甚至已经执行了?
  2. 如何从迁移中创建新记录?我可以使用Groovy代码,还是我坚持编写SQL?

我意识到我可以先创建表和域类,部署它,创建导入工具或管理界面来播种数据,然后修改代码以使用数据.我真的不想完成所有这些.我应该能够通过单一部署无缝地完成此任务,就像我在Rails中一样.

谢谢!

migration grails seeding grails-2.0

2
推荐指数
2
解决办法
1810
查看次数

Rails db:种子错误"未定义的方法`finder_needs_type_condition?' 为零:NilClass"

尝试填充我的sqlite数据库时遇到问题.关于特定错误"finder_needs_type_condition?"的信息不多.我可以找到,但我对Rails没有多少经验,甚至怀疑问题可能在哪里.

模型:

class Character < ActiveRecord::Base
  validates :user_id, :name, :class, presence: true
end
Run Code Online (Sandbox Code Playgroud)

控制器:

class CharactersController < ApplicationController
  before_action :authenticate_user!
  respond_to :json

  @user_id = current_user[:id]

  def index
    @characters = Character.all
  end

  def show
    @character = Character.find(params[:id])
  end

  def new
    @character = Character.new
  end

  def create
    @characters = Character.all
    @character = Character.create(character_params)
  end

  private
    def character_params
      params.require(:character).permit(:user_id, :name, :class)
    end
end
Run Code Online (Sandbox Code Playgroud)

schema.rb:

create_table "characters", force: :cascade do |t|
  t.datetime "created_at",             null: false
  t.datetime "updated_at",             null: false
  t.string   "name"
  t.string   "class"
  t.integer …
Run Code Online (Sandbox Code Playgroud)

database sqlite model ruby-on-rails seeding

2
推荐指数
1
解决办法
2779
查看次数

Laravel 5,不能使用db:seed(标签DB已定义)

我想在我的cmd上使用php artisan db:seed命令,但它说Label'DB'已经定义,

这是我的SeederTableAnggota代码:

    <?php
    use Illuminate\Database\Seeder;
    class SeederTableAnggota extends Seeder {
    Public function run()
{
    DB:table('anggota')->delete();
    $anggota= array(
    array('id'=>1,'nama'=>'Rizki Amelia Dewi','alamat'=>'Cilengsi'),
    array('id'=>2,'nama'=>'Dewi Ayunindita','alamat'=>'Jatinangor'),
    array('id'=>3,'nama'=>'Siti Hajar Riska','alamat'=>'Jakarta')       
        );
    DB:table('anggota')->insert('anggota');
    }
} 
Run Code Online (Sandbox Code Playgroud)

我已经在我的DatabaseSeeder.php上使用了$ this-> call('SeederTableAnggota').

我已经在我的cmd上使用了composer dump-autoload.

那么我如何使用db:seed以及为什么它说Label'DB'已经定义了?感谢您的帮助,任何帮助都将非常有用

php seeding laravel artisan

2
推荐指数
1
解决办法
1138
查看次数

Faker gem:可以用风格化的文字播种吗?

我使用 Faker gem 为我的数据库植入虚假数据。对于某些变量,我例如使用Faker::Lorem.paragraph(4). 但我真正想要的是用带有样式的文本播种。比如<p></p><b>等等。这可以用 Faker 宝石吗?

ruby rubygems ruby-on-rails seeding

2
推荐指数
1
解决办法
665
查看次数

如何在播种Laravel数据库期间在哪一行抛出错误?

我在数据库播种期间在控制台中引发了一个错误:

"Trying to get property of non-object" 
Run Code Online (Sandbox Code Playgroud)

但我找不到这行,因为文件太多。是否有任何应付这种情况的提示?

seed seeding laravel laravel-seeding

2
推荐指数
1
解决办法
1889
查看次数

Rails - 应用内"数据库种子"按钮?

我正在为我的公司构建一个Rails应用程序.我的seeds.rb文件包含用于将我的用户列表与我们的Office 365目录同步的代码,每次在目录中发生更改时都需要这样做,并且我正在尝试构建应用内"种子"按钮以便没有Rails/Heroku知识可以启动该过程.

正如您在下面的代码摘录中所看到的,我已经发现我可以通过调用rails db:seedshell命令来实现这一点,但感觉应该有一个不那么迂回的方式来做这个比Rails应用程序调用shell命令对自己进行操作.

有没有办法在应用程序内实际运行seeds.rb中的代码,或者调用rails db:seed我最接近的代码?

应用程序/视图/布局/ _header.html.erb

...
<li><%= link_to "Sync users with O365", seed_path %></li>
...
Run Code Online (Sandbox Code Playgroud)

配置/ routes.rb中

...
get '/seed', to: 'application#seed'
...
Run Code Online (Sandbox Code Playgroud)

应用程序/控制器/ application_controller.rb

...
  def seed
    `rails db:seed`
    redirect_back_or root_path
  end
...
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails seeding

2
推荐指数
1
解决办法
281
查看次数

使用 EFcore / ASP.net core 更新查找表中的数据的正确方法?我是用种子方法还是其他方法来做到这一点?

现在我正在开发中,并使用下面的代码来播种查找表。但是一旦投入生产,我想添加额外的数据,我该怎么做?我是否在播种方法中使用某种 AddOrUpdate (不在核心中)?编写 SQL 脚本?

 private static async Task SeedRfReportStateTypesAsync(PwdrsContext pwdrsContext)
    {
        if (pwdrsContext.RfReportStateTypes.Any())
        {
            return;
        }

        List<RfReportStateType> rfReportStateTypes = new List<RfReportStateType>()
        {
            new RfReportStateType() { Name = "Draft", UpdatedBy = "SYSTEM", UpdatedOn = DateTime.Now}, //4
            new RfReportStateType() { Name = "Review", UpdatedBy = "SYSTEM", UpdatedOn = DateTime.Now}, //3
            new RfReportStateType() { Name = "Stage", UpdatedBy = "SYSTEM", UpdatedOn = DateTime.Now}, //2
            new RfReportStateType() { Name = "Prod", UpdatedBy = "SYSTEM", UpdatedOn = DateTime.Now} //1
        };

        pwdrsContext.RfReportStateTypes.AddRange(rfReportStateTypes);
        await pwdrsContext.SaveChangesAsync();
    }
Run Code Online (Sandbox Code Playgroud)

seeding entity-framework-core asp.net-core

2
推荐指数
1
解决办法
787
查看次数

rake db:seed什么都不做

我做了一个小db/seeds.rb文件:

web = Website.find_or_create_by(id: 1) do |w|
  w.website = "http://example.dev/"
  w.banner_msg = "Hey! Banner message!"
  w.signup_msg = "Wahey! Sign up message!"
  w.bg_col = "#333"
  w.txt_col = "#EEE"
  w.btn_col = "#999"
end

pub = Publisher.find_or_create_by(id: 1) do |p|
  p.phone = "021 111 1111"
  p.website = web
end

User.find_or_create_by(id: 1) do |u|
  u.email = 'email@email.com'
  u.password = 'password'
  u.first_name = 'Joe'
  u.last_name = 'Bob'
  u.publisher = pub
end

User.create(id: 5, email: "hello@ds.dfs")
Run Code Online (Sandbox Code Playgroud)

当我运行时rake db:seed,终端只接受命令并呈现一个新行,没有错误消息,没有"rake abort!",没有.

当我检查Rails控制台中的字段时,那里什么也没有.发生了什么?

ruby-on-rails seeding ruby-on-rails-4

1
推荐指数
1
解决办法
1692
查看次数