django_admin_log has not been created for me - database

I am using Django version 1.5.4 and I followed the instructions here
http://www.tangowithdjango.com/book/chapters/models.html
But I cannot find django_admin_log table.
I manually deleted rango.db from
C:\Users\Glowie\django\tango_with_django_project
The INSTALLED_APPS in settings.py looks like this
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
# Uncomment the next line to enable the admin:
'django.contrib.admin',
# Uncomment the next line to enable admin documentation:
'django.contrib.admindocs',
'rango',
)
I executed the command
PS C:\users\Glowie\django\tango_with_django_project> python manage.py syncdb
Which outputs:
Creating tables ...
Creating table auth_permission
Creating table auth_group_permissions
Creating table auth_group
Creating table auth_user_groups
Creating table auth_user_user_permissions
Creating table auth_user
Creating table django_content_type
Creating table django_session
Creating table django_site
Creating table django_admin_log
Creating table rango_category
Creating table rango_page
And then asks me to define a superuser, which I do each time .....
You just installed Django's auth system, which means you don't have any superusers defined.
Would you like to create one now? (yes/no):
Which outputs
Superuser created successfully.
Installing custom SQL ...
Installing indexes ...
Installed 0 object(s) from 0 fixture(s)
Then I run the command
PS C:\users\Glowie\django\tango_with_django_project> python manage.py sql rango
Which outputs
BEGIN;
CREATE TABLE "rango_category" (
"id" integer NOT NULL PRIMARY KEY,
"name" varchar(128) NOT NULL UNIQUE
)
;
CREATE TABLE "rango_page" (
"id" integer NOT NULL PRIMARY KEY,
"category_id" integer NOT NULL REFERENCES "rango_category" ("id"),
"title" varchar(128) NOT NULL,
"url" varchar(200) NOT NULL,
"views" integer NOT NULL
)
;
COMMIT;
But where is django_admin_log table. The text says
You should see that the table django_admin_log is created for you.
Once done, open your project’s urls.py file. This was created in the
project configuration directory.
Where will I find django_admin_log?
Please tell me where is "project configuration directory".

django_admin_log is a table that was created when you ran python manage.py syncdb. It's showing in the terminal output you posted that displayed after you ran syncdb:
Creating tables ...
Creating table auth_permission
Creating table auth_group_permissions
Creating table auth_group
Creating table auth_user_groups
Creating table auth_user_user_permissions
Creating table auth_user
Creating table django_content_type
Creating table django_session
Creating table django_site
Creating table django_admin_log <---RIGHT HERE
Creating table rango_category
Creating table rango_page
That table isn't really important to worry about now that it's actually created. The real key for you is to find your urls.py in your project configuration directory.
Your project configuration directory is a directory within your project directory that has the same name as your project directory. From earlier in the Tango with Django tutorial:
You’ll now notice within your workspace is a directory set to the name
of your new project, tango_with_django_project. Within this newly
created directory, you should see two items:
another directory with the same name as your project, tango_with_django_project; and
a Python script called manage.py.
For the purposes of this tutorial, we call this nested directory the
project configuration directory. Within this directory, you will find
four Python scripts. We will discuss this scripts in detail later on,
but for now you should see:
Thus, based on your directory structure, your project configuration directory is located at:
PS C:\users\Glowie\django\tango_with_django_project\tango_with_django_project>
and the tutorial wants you to open the urls.py file within that directory.

Related

QueryException (42S02)

Illuminate \ Database \ QueryException (42S02)
SQLSTATE[42S02]: Base table or view not found: 1146 Table 'influencingquotes.posts' doesn't exist (SQL: select count(*) as aggregate from posts where quote_title = gtav hyhui)
I am not sure why this Database\QueryException is occurring :(
The Error says that the posts table is missing, maybe you forget to run:
php artisan migrate
1.If in database you couldn't find posts table
Then you need to try to find migration file for it
which for laravel 5 located in project_root_dir\database\migrations
Then via command line
php artisan migrate
2.If in database exist table, but name is wrong , for example name is post
In post model you need to specify table name
protected $table = 'post';
If it doesn't help, you need to write us
1.what you see in database, which tables or views exists there
2.What files you see in project_root_dir\database\migrations directory.

How to make the 'public' schema default in a Scala Play project that uses PostgreSQL?

I am not sure if my issue connecting to the Scala Play 2.5.x Framework or to PostgreSQL so I am going to describe my setup.
I am using the Play 2.5.6 with Scala and PostgreSQL 9.5.4-2 from the BigSQL Sandboxes. I use the Play Framework default evolution package to manage the DB versions.
I created a new database in BigSQL Sandbox's PGSQL and PGSQL created a default schema called public. I use this schema for development.
I would like to create a table with the following script (1.sql in DB evolution config):
# Initialize the database
# --- !Ups
CREATE TABLE user (
id SERIAL PRIMARY KEY,
name TEXT NOT NULL,
email TEXT NOT NULL,
creation_date TIMESTAMP NOT NULL
);
# --- !Downs
DROP TABLE user;
Besides that I would like to read the table with a code like this:
val resultSet = statement.executeQuery("SELECT id, name, email FROM public.user WHERE id=" + id.toString)
I got an error if I would like to execute any of the mentioned code or even if I use the CREATE TABLE... code in pgadmin. The issue is with the user table name. If I prefix it with public (i.e. public.user) everything works fine.
My questions are:
Is it normal to prefix the table name with the schema name every time? It seems to odd to me.
How can I make the public schema a default option so I do not have to qualify the table name? (e.g. CREATE TABLE user (...); will not throw an error)
I tried the following:
I set the search_path for my user: ALTER USER my_user SET search_path to public;
I set the search_path for my database: ALTER database "my_database" SET search_path TO my_schema;
search_path correctly shows this: "$user",public
I got the following errors:
In Play: p.a.d.e.DefaultEvolutionsApi - ERROR: syntax error at or near "user"
In pgadmin:
ERROR: syntax error at or near "user"
LINE 1: CREATE TABLE user (
********** Error **********
ERROR: syntax error at or near "user"
SQL state: 42601
Character: 14
This has nothing to do with the default schema. user is a reserved word.
You need to use double quotes to be able to create such a table:
CREATE TABLE "user" (
id SERIAL PRIMARY KEY,
name TEXT NOT NULL,
email TEXT NOT NULL,
creation_date TIMESTAMP NOT NULL
);
But I strongly recommend not doing that. Find a different name that does not require a quoted identifier.

Do or don't I need to create a table that I want to prepopulate with H2?

I'm confused by the errors I get when trying to create an in-memory H2 DB for my Spring Boot application. The relevant configuration is
db.url=jdbc:h2:mem:test;MODE=MySQL;DB_CLOSE_DELAY=-1;INIT=runscript from 'classpath:create.sql'
hibernate.hbm2ddl.auto=create
And create.sql:
CREATE TABLE `cities` (
`name` varchar(45) NOT NULL,
PRIMARY KEY (`name`)
) ;
INSERT INTO `cities` VALUES ('JAEN'),('ALBACETE');
But I get the error Caused by: org.h2.jdbc.JdbcSQLException: Table "CITIES" already exists;
Weird is, if I remove the CREATE TABLE statement, I get:
Caused by: org.h2.jdbc.JdbcSQLException: Table "CITIES" not found;
The only thing that works is using DROP TABLE IF EXISTS, but well, I don't think I should need to.
What's going on? What's the proper way of pre-populating static data into an H2 memory DB?
1) Hibernate way: use import.sql file or specify files
spring.jpa.properties.hibernate.hbm2ddl.import_files=file1.sql,file2.sql
http://docs.spring.io/spring-boot/docs/current/reference/html/howto-database-initialization.html
2) Spring Boot: use default schema.sql & data.sql files
or specify files through properties
spring.datasource.schema = file1.sql
spring.datasource.data = file1.sql, file2.sql
http://docs.spring.io/autorepo/docs/spring-boot/1.0.2.RELEASE/reference/html/howto-database-initialization.html

Creating two new database tables for Magento

I'm trying to add two tables to magento but it still dosen't work! I don't get the tables in MySQL.
There's no error message, just nothing happens.
I can't find where the mistake is;
I already checked all my pages.
This is my XML code in config.xml:
<models>
<interactivebanner>
<class>Kiwi_InteractiveBanner_Model</class>
<resourceModel>InteractiveBanner_resource</resourceModel>
</interactivebanner>
<interactivebanner_resource>
<class>Kiwi_InteractiveBanner_Model_Resource</class>
<entities>
<interactivebanner>
<table>interactivebanner</table>
</interactivebanner>
<interactivebanner2>
<table>interactivebanner_prod</table>
</interactivebanner2>
</entities>
</interactivebanner_resource>
</models>
and this is the setup page :
<?php
$installer = $this;
$installer->startSetup();
$installer->run("
DROP TABLE IF EXISTS `{$this->getTable('interactivebanner/interactivebanner')}`;
create table `{$this->getTable('interactivebanner/interactivebanner')}`
(
ENTITY_ID int not null,
NAME varchar(100),
LINK varchar(100),
STATUS int,
primary key (ENTITY_ID)
);
DROP TABLE IF EXISTS `{$this->getTable('interactivebanner/interactivebanner_prod')}`;
create table `{$this->getTable('interactivebanner/interactivebanner_prod')}`
(
PROD_ID int not null,
ENTITY_ID int,
POSI_V float,
POSI_H float,
primary key (PROD_ID)
);
alter table banner_pro add constraint FK_RELATION_1 foreign key (ENTITY_ID)
references banner (ENTITY_ID) on delete restrict on update restrict;
");
$installer->endSetup();
Is this existing module you want to upgrade?
If so, you will have to bump the module version before your upgrade script runs. If it's a separate module you have to make the mysql4-setup-<version>.php with a version so high or above that will create the tables. Also you will require to have module declaration in your app/etc/Myself_Interactivebanner.xml so that Magento knew about the module existence.
To get more certain answer provide more details about the environment you have.
If I had to guess, your install script is not running. This can happen for multiple reasons. I would look at this post that helped me get my install script running:
My Magento Extension Install Script Will Not Run
i found a mistake on my config.xml !
an uppercase missing :)
sorry.

Oracle external tables - Specifying dynamic filename

CREATE TABLE LOG_FILES (
LOG_DTM VARCHAR(18),
LOG_TXT VARCHAR(300)
)
ORGANIZATION EXTERNAL(
TYPE ORACLE_LOADER
DEFAULT DIRECTORY LOG_DIR
ACCESS PARAMETERS(
RECORDS DELIMITED BY NEWLINE
FIELDS(
LOG_DTM position(1:18),
LOG_TXT position(19:300)
)
)
LOCATION('logadm'))
)
REJECT LIMIT UNLIMITED
/
LOG_DIR is an oracle directory that points to /u/logs/
The problem though is that the contents of /u/logs/ looks like this
logadm_12012012.log
logadm_13012012.log
logadm_14012012.log
logadm_15012012.log
Is there any way i can specify the location of the file dynamically? i.e. every time i run Select * from LOG_FILES it should use the log file of the day. (e.g. log_adm_DDMMYYYYY).
I know i can use alter table log_files location ('logadm_15012012.log') but i would like not to have to issue the alter command.
Any other possibilities?
Thanks
It's a shame you're running 10g. On 11g we can associate a pre-processor script - a shell script - with an external table. In your case you could run a script which would figure out the latest file and then issue a copy command. Something like:
cp logadm_15012012.log logadm
Adrian Billington has blogged about this feature here. Frankly his write-up is more helpful than the official docs.
But as you're on 10g all you can do is run the ALTER TABLE statement, or use a scheduled job (cron or whatever) to sync a new file with the generic name.

Resources