fix: change the way the comma appears in the column SQL creation to fix a SQL syntax error
This commit is contained in:
@@ -46,8 +46,7 @@ impl ColumnSqlSerializer {
|
||||
query += "PRIMARY KEY ";
|
||||
}
|
||||
|
||||
query.push(',');
|
||||
Ok(query)
|
||||
Ok(query.trim_end().to_string())
|
||||
}
|
||||
}
|
||||
|
||||
@@ -70,7 +69,7 @@ mod tests {
|
||||
let serializer = ColumnSqlSerializer{};
|
||||
let result = serializer.serialize(column).unwrap();
|
||||
|
||||
assert_eq!(result, "id INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY ,".to_string());
|
||||
assert_eq!(result, "id INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY".to_string());
|
||||
}
|
||||
|
||||
#[test]
|
||||
@@ -85,7 +84,7 @@ mod tests {
|
||||
let serializer = ColumnSqlSerializer{};
|
||||
let result = serializer.serialize(column).unwrap();
|
||||
|
||||
assert_eq!(result, "name TEXT NOT NULL DEFAULT 'None' ,".to_string());
|
||||
assert_eq!(result, "name TEXT NOT NULL DEFAULT 'None'".to_string());
|
||||
}
|
||||
|
||||
#[test]
|
||||
@@ -100,6 +99,6 @@ mod tests {
|
||||
let serializer = ColumnSqlSerializer {};
|
||||
let result = serializer.serialize(column).unwrap();
|
||||
|
||||
assert_eq!(result, "age INTEGER NOT NULL DEFAULT 18 ,".to_string());
|
||||
assert_eq!(result, "age INTEGER NOT NULL DEFAULT 18".to_string());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,16 +6,13 @@ pub struct TableSqlSerializer {}
|
||||
|
||||
impl TableSqlSerializer {
|
||||
pub fn serialize(self, table: Table) -> String {
|
||||
let mut query = String::from("CREATE TABLE ");
|
||||
query += &format!("{} (\n", table.name);
|
||||
|
||||
let column_serializer = ColumnSqlSerializer{};
|
||||
for column in table.columns {
|
||||
query += &column_serializer.serialize(column).unwrap();
|
||||
}
|
||||
let columns_sql: Vec<String> = table.columns
|
||||
.into_iter()
|
||||
.map(|c| column_serializer.serialize(c).unwrap())
|
||||
.collect();
|
||||
|
||||
query += ");";
|
||||
query
|
||||
format!("CREATE TABLE {} ({});", table.name, columns_sql.join(", "))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -43,6 +40,6 @@ mod test {
|
||||
|
||||
let result = serializer.serialize(table);
|
||||
|
||||
assert_eq!(result, "CREATE TABLE test (\nid INTEGER NOT NULL AUTO_INCREMENT ,);".to_string());
|
||||
assert_eq!(result, "CREATE TABLE test (id INTEGER NOT NULL AUTO_INCREMENT);".to_string());
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user