lenguajes de programación

Llenar base de datos con datos de prueba

En este tutorial te enseñaré a llenar tu base de datos con datos aleatorios. Podrás llenar base de datos con teléfonos, direcciones, nombres, poemas, etc.

Creación de base de datos

Costo Estimado : 0 USD

Crear y llenar una base de datos

  1. descargar sequel

    Para crear la base de datos usé un bonito framework para ruby llamado sequel que de hecho es opensource.

  2. crear un script para tablas

    La estructura basica es la siguiente

    DB.create_table :users do
    primary_key :id
    String :identificador
    String :username
    String :fullname
    String :email
    foreign_key :user_session_state, :user_session_states
    foreign_key :user_state, :user_states
    String :phone
    end

  3. llenar usando faker

    faker es otro framework opensource en ruby se usaría algo asi

    users = DB[:users]

    users.insert(identificador: Faker::Alphanumeric.alphanumeric(number: 10),username: Faker::Creature::Animal.name+prng.rand(1..100).to_s, fullname: Faker::Name.name, email: Faker::Internet.email, user_session_state:1, user_state:1, phone: Faker::PhoneNumber.phone_number+””)

    cabe destacar que faker tiene implementaciones para otros lenguajes de programacion

Ejemplo

En mi caso el script de creación de tablas usando sequel quedaría:

DB.create_table :app_themes do
  primary_key :id
  String :name
  String :primary
end

DB.create_table :user_session_states do
  primary_key :id
  String :state
end

DB.create_table :user_states do
  primary_key :id
  String :state
end


DB.create_table :languages do
  primary_key :id
  String :identifier
  String :lang
end

DB.create_table :users do
  primary_key :id
  String :identificador
  String :username
  String :fullname
  String :email
  foreign_key :user_session_state, :user_session_states
  foreign_key :user_state, :user_states
  String :phone
end

DB.create_table :about_states do
  primary_key :id
  String :state
  foreign_key :user_id, :users
  TrueClass :active
end

DB.create_table :user_configs do
  primary_key :id
  foreign_key :user_id, :users
  foreign_key :language_id, :languages
  foreign_key :app_theme, :app_themes
end

DB.create_table :image_sizes do
  primary_key :id
  String :size
  Integer :height
  Integer :width
end

DB.create_table :user_images do
  primary_key :id
  foreign_key :user_id, :users
  foreign_key :image_size_id, :image_sizes
end

DB.create_table :rooms do
  primary_key :id
  String :name
  TrueClass :is_private
end

DB.create_table :room_participants do
  primary_key :id
  foreign_key :room_id, :rooms
  foreign_key :user_id, :users
end

DB.create_table :message_types do
  primary_key :id
  String :type
end

DB.create_table :messages do
  primary_key :id
  String :message
  foreign_key :room_id, :rooms
  foreign_key :user_id, :users
  foreign_key :message_type_id, :message_types
end

DB.create_table :room_settings do
  primary_key :id
  String :primary_color
  foreign_key :room_id, :rooms
end

DB.create_table :friend_states do
  primary_key :id
  String :state
end

DB.create_table :friends do
  primary_key :id
  foreign_key :friend_state, :friend_states
  foreign_key :sender_id, :users
  foreign_key :receptor_id, :users
end

Llenar base de datos con aleatorios

posteriormente para insertar datos usé otro framework sencillamente genial llamado faker que también da la casualidad que es opensource.

users = DB[:users]
rooms = DB[:rooms]
messages = DB[:messages]
message_types = DB[:message_types]
room_participants = DB[:room_participants]
user_session_states = DB[:user_session_states]
user_states = DB[:user_states]

prng = Random.new

message_types.insert(type: 'General')
user_session_states.insert(state: 'Initial')
user_states.insert(state: 'Online')

3.times do
  users.insert(identificador: Faker::Alphanumeric.alphanumeric(number: 10),username: Faker::Creature::Animal.name+prng.rand(1..100).to_s, fullname: Faker::Name.name, email: Faker::Internet.email, user_session_state:1, user_state:1, phone: Faker::PhoneNumber.phone_number+"")
  rooms.insert(name: Faker::Team.sport, is_private: Faker::Boolean.boolean)
end

room_participants.insert(room_id:1,user_id:1)
room_participants.insert(room_id:1,user_id:2)
room_participants.insert(room_id:1,user_id:3)
room_participants.insert(room_id:2,user_id:1)
room_participants.insert(room_id:2,user_id:2)
room_participants.insert(room_id:2,user_id:3)
room_participants.insert(room_id:3,user_id:1)
room_participants.insert(room_id:3,user_id:2)
room_participants.insert(room_id:3,user_id:3)

300.times do
  messages.insert(message: Faker::Fantasy::Tolkien.poem, room_id: prng.rand(1..3), user_id: prng.rand(1..3), message_type_id: 1)  
end

javatlacati

Compartir
Publicado por
javatlacati
Etiquetas: rubytutorial

Entradas recientes

Cursos de Código Facilito

Te comparto aquí mis recomendaciones de cursos de Código Facilito. Codigofacilito.com es una plataforma virtual…

2 meses hace

Cursos de LinkedIn Learning

Te comparto aquí mis recomendaciones de cursos de Linkedin Learning. LinkedIn Learning es una plataforma…

4 meses hace

Mockito: Snippets de código

Estos snippets de código para entrevista acerca de mockito espero te sean de mucha utilidad.…

4 meses hace

Expresiones regulares en Java: analizar un String

En este tutorial aprenderá a usar expresiones regulares en Java de manera práctica para contar…

4 meses hace

Preguntas para entrevista de programación Java full-stack

¿Entrevista de programación Java fullstack? No te preocupes, te tengo un compendio de preguntas de…

5 meses hace

SoftSkills: cursos de Udemy

Te recomiendo algunos cursos de Udemy para mejorar tus softskills y así mejorar en tu…

5 meses hace