View source: R/database_create.R
DBI_tables_create | R Documentation |
Create RegLog-valid database tables with DBI
DBI_tables_create( conn, account_name = "account", reset_code_name = "reset_code", use_log = FALSE, log_name = "logs", user_data = NULL, hash_passwords = FALSE, verbose = TRUE )
conn |
DBI connection object |
account_name |
Name of the table for storing user accounts credentials. Defaults to 'account'. Mandatory table. |
reset_code_name |
Name of the table for storing generated password reset codes. Defaults to 'reset_code'. Mandatory table. |
use_log |
Should the table for keeping RegLogServer logs be also created? Defaults to FALSE |
log_name |
Name of the table for storing logs from RegLogServer object.
Used only if |
user_data |
If you wish to import existing user database, you can input data.frame with that table in this argument. It should contain columns: username, password, email. Defaults to NULL. |
hash_passwords |
If you are importing table of users upon tables creation,
you can also specify if the password should be hashed using |
verbose |
Boolean specific if the actions made by function should be
printed back to the console. Defaults to |
Currently, the function is tested and working correctly for SQLite, MySQL, MariaDB and PostrgreSQL databases. If you want to use another DBI-supported database, you need to create tables in other ways.
Created tables should have following structure:
account (default name)
id: integer, primary key, auto-increment
username: varchar(255), NOT NULL, unique key
password: varchar(255), NOT NULL
email: varchar(255), NOT NULL, unique key
create_time: datetime, NOT NULL
update_time: datetime, NOT NULL
reset_code (default name)
id: integer, primary key, auto-increment
user_id: integer, NOT NULL, key
reset_code: varchar(10), NOT NULL
used: tinyint, NOT NULL
create_time: datetime, NOT NULL
update_time: datetime, NOT NULL
logs (default name, optional)
id: integer, primary key, auto-increment
time: datetime, NOT NULL
session: varchar(255), NOT NULL
direction: varchar(255), NOT NULL
type: varchar(255), NOT NULL
note: varchar(255)
List with results of the creation
Other RegLog databases:
gsheet_tables_create()
,
mongo_tables_create()
library(shiny.reglog) # create a tenporary SQLite database conn <- DBI::dbConnect( RSQLite::SQLite(), dbname = ":memory:" ) # mockup user data user_data <- data.frame(username = c("Whatever", "Hanuka", "Helsinki", "How_come"), password = c("&f5*MSYj^niDt=V'3.[dyEX.C/", "%}&B[fs\\}5PKE@,*+V\\tx9\"at]", "35z*ofW\\'G_8,@vCC`]~?e$Jm%", "s:;r_eLn?-D6;oA-=\"^R(-Ew<x"), email = c("what@mil.com", "hehe@soso.so", "nider@what.no", "crazzz@simpsy.com")) # create the tables and input the data (hashing the passwords in the process) DBI_tables_create(conn = conn, user_data = user_data, hash_passwords = TRUE, verbose = FALSE) # check generater tables DBI::dbListTables(conn = conn) # check the "user" table for user data DBI::dbReadTable(conn = conn, "account") # disconnect DBI::dbDisconnect(conn = conn)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.